método iniciaJogo

método iniciaJogo

por José Eduardo Santos -
Número de respostas: 2

import java.util.Random;
 
  class Truco
  {
    void iniciJogo();
    int carta1, int carta2, int carta3, int cartaPc1, int cartaPc2, int cartaPc3;
           {  
  Random gerador1 = new Random();
  carta1 = gerador1.nextInt(10) + 1;
  Random gerador2 = new Random();
  carta2 = gerador2.nextInt(10) + 1;
  Random gerador3 = new Random();
  carta3 = gerador3.nextInt(10) + 1;
  Random gerador4 = new Random();
  cartaPc1 = gerador4.nextInt(10) + 1;
  Random gerador5 = new Random();
  cartaPc2 = gerador5.nextInt(10) + 1;
  Random gerador6 = new Random();
  cartaPc3 = gerador6.nextInt(10) + 1;
    }
  }

Não estou conseguindo avançar...eu tento compilar e aparece o erro:

1 error found:
File: C:\jdk1.5.0_15\Trucoteste.java  [line: 6]
Error: <identifier> expected

Não sei o que fazer...

Em resposta à José Eduardo Santos

Re: método iniciaJogo

por Vinícius Daros -
Olá, José

O erro de compilação apareceu porque você colocou um ";" no final da linha 5. O correto seria:
"void iniciJogo()
{"
(sem ponto e vírgula)

Além disso, note que você declarou suas variáveis dentro do método. Assim, elas são parâmetros apenas do método e não da classe. Ou seja, fora do iniciaJogo(), essas variáveis não existem.

Para que você consiga usa-las em outros métodos, como jogaCarta, declare-as da seguinte forma:

class Truco
{
/* Declarando parâmetros de classe. */
int carta1, int carta2, int carta3, int cartaPc1, int cartaPc2, int cartaPc3;

void iniciaJogo() {
/* Declarando o gerador de números aleatórios. */
java.util.Random gerador = new java.util.Random();

/* Atribuindo números aleatórios às seis variáveis. */
carta1 = gerador.nextInt( 10 ) + 1;
carta2 = gerador.nextInt( 10 ) + 1;
carta3 = gerador.nextInt( 10 ) + 1;

cartaPc1 = gerador.nextInt( 10 ) + 1;
cartaPc2 = gerador.nextInt( 10 ) + 1;
cartaPc3 = gerador.nextInt( 10 ) + 1;
}
}

Perceba também que você só precisa de um gerador e, cada vez que você queira um número aleatório, basta chamar o método nextInt.

ATENÇÃO:
Muitas pessoas estão usando
int carta1 = gerador.nextInt( 10 ) + 1;
em vez de
carta1 = gerador.nextInt( 10 ) + 1;
Tomem cuidado com isso! Da primeira forma, vocês estarão redeclarando a variável carta. Isso não é o que vocês querem.
Vejam o seguinte post: http://paca.ime.usp.br/mod/forum/discuss.php?d=6564

Abraço,

Vinícius