Boa madrugada!
Primeiramente, peço desculpas pelo modo que irei descrever o meu problema, pois, é a primeira vez que posto num “fórum” de programação… Enfim…
Estou desenvolvendo um código de adivinhação-simples, aonde o jogador terá que adivinhar um número aleatório, gerado pela função random. Porem, ao jogador “dar os comandos”, que são lidos pelo scanner, ele necessita pressionar 2 vezes a tecla Enter.
Alguém sabe dizer o que pode ser o erro?
Obs: já “ouvi falar” com problema de buffer, até tive um erro próximo, em outro código, e consegui resolver com “System.out.println();”.
Mostre o seu código que está com esse problema, pois assim é mais fácil vermos o que pode estar errado.
Abraço.
S
szotka98
Agora, o código esta fazendo a leitura correta… Apenas “dei um tempo do código” e, ao ligar o pc, no outro dia, está funcionando. Não faço ideia o pq, mas esta funcionando corretamente, para mim…
Mas enfim, segue o código, caso consiga me indicar o suposto - e/ou pq “ele” voltou a funcionar"…
package adivinhação;
publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intdfcl,chute,pgt;intvidas=0;Randomaleatorio=newRandom();intnumero_misterioso=aleatorio.nextInt(100)+1;booleantentarnovamente=false;booleanptgnovamente=false;booleanptgnovamente2=false;Stringpergunta="";Stringstatus="";do{System.out.println("A dificuldade definirá quantas chances tu terá para acertar o número misterioso ");System.out.println(" que vai de 0 a 100 ");System.out.println("1- muito jovem para morrer");System.out.println("2- um tapinha não dói ");System.out.println("3- ultraviolento ");System.out.println("4- pesadelo ");do{System.out.println("Informe o número da dificuldade escolhida:");dfcl=sc.nextInt();if(dfcl==1){vidas=100;ptgnovamente=false;}elseif(dfcl==2){vidas=50;ptgnovamente=false;}elseif(dfcl==3){vidas=10;ptgnovamente=false;}elseif(dfcl==4){vidas=1;ptgnovamente=false;}if(dfcl<1||dfcl>4){ptgnovamente=true;}}while(ptgnovamente);for(intround=1;round<=vidas;round++){do{System.out.printf("Digite o %2dº chute de %d.\n",round,vidas);chute=sc.nextInt();if(chute>=1&&chute<=100){if(chute==numero_misterioso){status="correto";}elseif(chute>numero_misterioso){status="passou";}elseif(chute<numero_misterioso){status="faltou";}switch(status){case"correto":System.out.println("Redemption Denied, fim de jogo...... ");System.out.println("tô brincando, vc ganhou");round=vidas;break;case"passou":System.out.println("o chute foi maior que o número misterioso ");break;case"faltou":System.out.println("o chute foi menor que o número misterioso ");break;}}else{System.out.println("não foi digitado um numero entre 0 e 100");tentarnovamente=true;}}while(tentarnovamente);}System.out.println("Fim de jogo");System.out.println();do{System.out.println("Deseja continuar (1-sim/2-nao)?");System.out.println("Digite o numero correspondente:");pgt=sc.nextInt();System.out.println();if(pgt==1){ptgnovamente2=false;pergunta="sim";}elseif(pgt==2){ptgnovamente2=false;pergunta="nao";}else{ptgnovamente2=true;}}while(ptgnovamente2);}while(pergunta.equalsIgnoreCase("sim"));sc.close();System.out.println("Sem redenção pra ti");}
}
davidbuzatto
Está funcionando pq computação é uma ciência não determinística, mística e exotérica. O computador decide quando vai fazer direito ou não. É assim mesmo, não se assuste… (é brincadeira tá?)