Manter o mesmo número randômico[resolvido]

2 respostas
Paulo_Mour

Boa tarde Srs, peço a colaboração para uma dúvida. No programa abaixo, o usuário responde qual o resultado da operação de multiplicação solicitado(os valores são randômicos). Se a resposta estiver correta o aplicativo pergunta se quer continuar. O meu problema é quando a resposta estiver errada. Como faço para repetir os mesmos números da pergunta em que ele errou ?

import java.util.Random;
import java.util.Scanner;

public class TestaMultiplicacao
{
	int num1, num2;
	Random numeroRandomico = new Random();
	int resposta;
	boolean continua = true;
	String avalia;
	
	public void lancaPergunta()
	{
		Scanner entrada = new Scanner(System.in);
		Scanner opcao = new Scanner(System.in);
		
		while( continua )
		{
			int respP = 1 + numeroRandomico.nextInt( 4 );
			int respN = 5 + numeroRandomico.nextInt( 4 );
			
			System.out.printf("Quanto é %d multiplicado por %d ? ", num1 = 1 + numeroRandomico.nextInt(11), num2 = 1 + numeroRandomico.nextInt(11));
			resposta = entrada.nextInt();
			
			if( resposta == num1 * num2 )
			{					
				switch( respP )
				{
					case 1:
						System.out.println("Muito bom!");
						break;
					case 2:
						System.out.println("Excelente!");
						break;
					case 3:
						System.out.println("Bom trabalho!");
						break;
					case 4:
						System.out.println("Continue o bom trabalho");
						break;
					default:						
				}
				
				System.out.print("Deseja continuar( S = sim / N = não ) ? ");
				avalia = opcao.nextLine();		
				
				if( avalia.equalsIgnoreCase("n"))
					continua = false;				
												
			}
			
			if( resposta != num1 * num2 )
			{								
				switch( respN )
				{
					case 5:
						System.out.println("Não. Tente de novo");
						break;
					case 6:
						System.out.println("Errado. Tente mais uma vez.");
						break;
					case 7:
						System.out.println("Não desista!");
						break;
					case 8:
						System.out.println("Nao. Continue tentando!");
						break;	
					default:
						
				}								
			}							
		}	
	}		
}
public class TestaMultiplicacaoTeste
{
	public static void main(String[] args)
	{
		TestaMultiplicacao executa = new TestaMultiplicacao();
		
		executa.lancaPergunta();

	}

}

Grato,

Paulo

2 Respostas

rmendes08
num1 = 1 + numeroRandomico.nextInt(11);
num2 = 1 + numeroRandomico.nextInt(11);

do{
    System.out.printf("Quanto é %d multiplicado por %d ? ", num1 , num2);  
    resposta = entrada.nextInt();
}while( resposta != num1 * num2 );
Paulo_Mour

rmendes08,

Funcionou. Obrigado.

Abs,

Paulo

Criado 19 de agosto de 2011
Ultima resposta 19 de ago. de 2011
Respostas 2
Participantes 2