Regras com Random

4 respostas
B
Estou com um exercício de adivinhação. O primeiro é um jogo no qual o programa gere um número de 1 a 100 com o Random e o usuário vai chutando com InputDialog. Esse consegui fazer, ok.

Utilizei o método:

Random gerador = new Random();

int numeroGerado = gerador.nextInt(100) + 1;

Agora, eu preciso fazer um, onde quem terá que adivinhar é o computador. Ou seja, ele ficará gerando os números aleatórios com o Random, e eu colocarei a resposta, se está correto, se é menor ou maior.

Mas minha dúvida é a seguinte: Como fazer com que o Random, seja direcionado conforme as respostas. Se eu colocar ‘MAIOR’, ele não pode mais chutar um número que é menor do que ele falou anteriormente, vice-versa.

Alguém pode me dar uma luz? Obrigado.

4 Respostas

CWeiler

Crie duas variáveis, uma para armazenar o menor chute (inicializada com 0) e o maior chute (inicializada com 101). Armazene o chute do computador conforme o seu teste, se menor ou maior que o palpite alvo, na variável correspondente.

A linha para obter o chute fica assim:

rnd.nextInt(maiorChute - menorChute - 1) + menorChute + 1;
B

Olá,

Então, não consegui implementar essa lógica… mas entendi ate algo assim:

int menorChute = 0;
int maiorChute = 101;

Random gerador = new Random();

int numeroGerado = gerador.nextInt(maiorChute - menorChute - 1) + menorChute + 1;

JOptionPane.showMessageDialog(null, numeroGerado);

Mas como implemento nas respostas de ‘<’ e ‘>’ ?

if (resposta == =) {

Acertou!

else if (resposta == >) {

else if (resposta == ‘<’) {

}

CWeiler

se chute é igual a número então acertou ou então se chute é menor menorChute = chute ou então // supõe chute é maior maiorChute = chute

Faça isso dentro de um while

B

Consegui resolver!! Muiito Obrigado!! :smiley: :smiley:

Criado 21 de outubro de 2014
Ultima resposta 23 de out. de 2014
Respostas 4
Participantes 2