Oi, Mariana
Verifique se você declarou as cartas do computador como atributos de classe e não as declarou dentro do método iniciaJogo novamente.
Deixe-me explicar melhor: seu código
não deve estar assim:
class Truco
{
int cartaComputador1, cartaComputador2, cartaComputador3;
void inciaJogo() {
java.util.Random gerador = new java.util.Random();
int cartaComputador1 = gerador.nextInt(10) + 1;
/* Na liha acima, houve redeclaração da variável! */
}
}
Por que esse trecho está errado?
Note que, dentro de iniciaJogo, colocou-se o "int" antes da atribuição de cartaComputador1. Dessa forma, o compilador entende que você está criando uma nova variável com esse nome. Isso implica em duas coisas:
1- O valor gerado é atribuido à variável do método e não à da classe;
2- O escopo da nova variável é apenas o método iniciaJogo. Com isso, ao fim do bloco de comando, essa variável não existe mais. Logo, na próxima vez que você pede o valor de cartaComputador1, será mostrado o valor do paramêtro de classe, que não foi inicializado.
Como resolver?
Simplesmente apage o "int" que está dentro de iniciaJogo(). A linha ficaria assim:
cartaComputador1 = gerador.nextInt(10) + 1;
Pelo que você disse, acho que é isso que está acontecendo.
Sobre mandar o código por e-mail, gostaria de salientar um ponto:
O objetivo do fórum é justamente resolver as dúvidas de forma que todos possam acompanhar as perguntas e respostas. A idéia é que a resposta para a dúvida de um possa ajudar todo mundo.
Resolver casos particularmente por e-mail acaba impossibilitando atingir essa meta.
Além disso, se você precisar que algum dos monitores realmente olhe seu código (algumas vezes, é só assim mesmo para achar o erro), vá em algum dos plantões. Estamos lá para isso ; ]
Espero ter ajudado.
Abraço,
Vinícius