Estou resolvendo o exercício "jogo de adivinhação", mas não achei que ficou tão legal a forma como parei o fluxo caso o usuário acerte. Usei o break para isso. Quero opiniões sobre formas melhores.
O parâmetro "bound" está em 1 porque é um teste. Assim que acabar ele volta a ser int numeroGerado = random.nextInt(100);
Enfim, eis a classe:
import java.util.Random;
import java.util.Scanner;
public class AdivinhadorDeNumeroAleatorio {
Random random = new Random();
int numeroGerado = random.nextInt(1);
int chute = 0;
Scanner scanner = new Scanner(System.in);
public void contaTentativas(){
boolean acerto = false;
leNumeroChutado();
imprimeNumeros();
for(int i = 1; i<5; i++) {
if (chute == numeroGerado) {
System.out.println("Você acertou");
acerto = true;
break;
} else {
leNumeroChutado();
imprimeNumeros();
}
}
}
public int leNumeroChutado(){
System.out.println("Digite um número de 1 a 100: ");
chute = scanner.nextInt();
return chute;
}
public void imprimeNumeros() {
System.out.println("Número chutado: " + chute);
System.out.println("Número gerado: " + numeroGerado);
}
}
Na Main.java chamo o método : contaTentativas();