Math.random
Exercicio1 No jogo “Qual é o número?”, preciso acertar um número escolhido pelo computador utilizando no máximo três chutes. O número deverá estar entre 1 e 10. Quanto mais cedo acertar o número, maior o valor recebido. O programa informará se o número dado por você é maior ou menor que o sorteado.foi dada a dica de usar o método da classe math..mas como começar? int num = (int) (Math.random()*100) + 1;
Fado
Curtidas 0
Respostas
Fado
29/03/2011
Exercicio1
No jogo
“Qual é o número?”, preciso acertar um número escolhido pelo computador utilizando no máximo três chutes. O número deverá estar entre 1 e 10. Quanto mais cedo acertar
o número, maior
o valor recebido. O programa informará
se o número dado por você é maior ou menor que o sorteado.ele ta executando mas nao de maneira certa...na 2 ou terceira tentativa ele mostra o resultado, mas msg duplicadas "numero maior" "numero menor"... onde corrigir?
----------------
import java.util.Scanner;
public class Jogo {
public static void main(String[] args) {
Float A, B;
int num = (int) (Math.random()*100) + 1;
Scanner ent=new Scanner(System.in);
System.out.println("1 chute, Qual é o numero?");
A=ent.nextFloat();
if (num==A)
if (num>A)
if (num<A)
System.out.println ("parabéns foi sorteado");
System.out.println ("meu numero é maior");
System.out.println ("meu numero é menor");
System.out.println("2 chute, Qual é o numero?");
B=ent.nextFloat();
System.out.println ("meu numero é maior");
System.out.println ("meu numero é menor");
System.out.println ("parabéns foi sorteado");
}
}
GOSTEI 0
Davi Costa
29/03/2011
Não sei se entendi 100%, mas oq vc deve fazer é gerar um número de 1 a 10 aleatoriamente.
Vc começa perguntando se o número é menor, maior ou igual a 5, caso
não seja o numero vc diminui as possibilidades pela metade. Por exemplo vou fazer um fluxo caso o número seja 9(o gerado pela JVM aleatoriamente)
1- Passo: é 5, maior que 5 ou menor q 5?
R- maior
2- passo: é 8, maior que 8 ou menor q 8?(se observar diminuo sempre as possibilidades por 2)
R-maior
3passo: é 9, maior que 9 ou menor q ?
R- é 9
Acredito que seja assim q vc deva proceder.
Talvez não precise nem de intervenção de usuário.
Espero ter elucidado mais os caminhos.
Att Davi
Vc começa perguntando se o número é menor, maior ou igual a 5, caso
não seja o numero vc diminui as possibilidades pela metade. Por exemplo vou fazer um fluxo caso o número seja 9(o gerado pela JVM aleatoriamente)
1- Passo: é 5, maior que 5 ou menor q 5?
R- maior
2- passo: é 8, maior que 8 ou menor q 8?(se observar diminuo sempre as possibilidades por 2)
R-maior
3passo: é 9, maior que 9 ou menor q ?
R- é 9
Acredito que seja assim q vc deva proceder.
Talvez não precise nem de intervenção de usuário.
Espero ter elucidado mais os caminhos.
Att Davi
GOSTEI 0
Fado
29/03/2011
//acho que consegui..confere?
import java.util.Scanner;
public class Jogo {
public static void main(String[] args) {
Float A,B,C;
int num = (int) (Math.random()*10) + 1;
Scanner ent=new Scanner(System.in);
System.out.println("1 chute, Qual é o numero?");
A=ent.nextFloat();
if (num==A)
System.out.println ("parabéns foi sorteado");
if (num>A)
System.out.println ("meu numero é menor");
if (num<A)
System.out.println ("meu numero é maior");
System.out.println("2 chute, Qual é o numero?");
B=ent.nextFloat();
if (num==B)
System.out.println ("parabéns foi sorteado");
if (num>B)
System.out.println ("meu numero é menor");
if (num<B)
System.out.println ("meu numero é maior");
System.out.println("3 chute, Qual é o numero?");
C=ent.nextFloat();
if (num==C)
System.out.println ("parabéns foi sorteado");
if (num>C)
System.out.println ("meu numero é menor");
if (num<C)
System.out.println ("meu numero é maior");
}
}
Não sei se entendi 100%, mas oq vc deve fazer é gerar um número de 1 a 10 aleatoriamente.
Vc começa perguntando se o número é menor, maior ou igual a 5, caso
não seja o numero vc diminui as possibilidades pela metade. Por exemplo vou fazer um fluxo caso o número seja 9(o gerado pela JVM aleatoriamente)
1- Passo: é 5, maior que 5 ou menor q 5?
R- maior
2- passo: é 8, maior que 8 ou menor q 8?(se observar diminuo sempre as possibilidades por 2)
R-maior
3passo: é 9, maior que 9 ou menor q ?
R- é 9
Acredito que seja assim q vc deva proceder.
Talvez não precise nem de intervenção de usuário.
Espero ter elucidado mais os caminhos.
Att Davi
Vc começa perguntando se o número é menor, maior ou igual a 5, caso
não seja o numero vc diminui as possibilidades pela metade. Por exemplo vou fazer um fluxo caso o número seja 9(o gerado pela JVM aleatoriamente)
1- Passo: é 5, maior que 5 ou menor q 5?
R- maior
2- passo: é 8, maior que 8 ou menor q 8?(se observar diminuo sempre as possibilidades por 2)
R-maior
3passo: é 9, maior que 9 ou menor q ?
R- é 9
Acredito que seja assim q vc deva proceder.
Talvez não precise nem de intervenção de usuário.
Espero ter elucidado mais os caminhos.
Att Davi
GOSTEI 0
Davi Costa
29/03/2011
import java.util.Scanner;
public class Jogo {
public static void main(String[] args) {
Float A,B,C; não vejo a necessidade de ser float.. em nenhum momento vc falou em número quebrado
int num = (int) (Math.random()*10) + 1;
Scanner ent=new Scanner(System.in);
System.out.println("1 chute, Qual é o numero?");
A=ent.nextFloat();
if (num==A)
System.out.println ("parabéns foi sorteado");
if (num>A)
System.out.println ("meu numero é menor");
if (num<A)
System.out.println ("meu numero é maior");
System.out.println("2 chute, Qual é o numero?");
B=ent.nextFloat();
if (num==B)
System.out.println ("parabéns foi sorteado");
if (num>B)
System.out.println ("meu numero é menor");
if (num<B)
System.out.println ("meu numero é maior");
System.out.println("3 chute, Qual é o numero?");
C=ent.nextFloat();
if (num==C)
System.out.println ("parabéns foi sorteado");
if (num>C)
System.out.println ("meu numero é menor");
if (num<C)
System.out.println ("meu numero é maior");
}
}
cara seguinte, como te falei vai funcionar, mas vc não garante que com 3 perguntas vc advinhe o número. Vc não está usando de dividir pela metade como te falei.
att Davi
public class Jogo {
public static void main(String[] args) {
Float A,B,C; não vejo a necessidade de ser float.. em nenhum momento vc falou em número quebrado
int num = (int) (Math.random()*10) + 1;
Scanner ent=new Scanner(System.in);
System.out.println("1 chute, Qual é o numero?");
A=ent.nextFloat();
if (num==A)
System.out.println ("parabéns foi sorteado");
if (num>A)
System.out.println ("meu numero é menor");
if (num<A)
System.out.println ("meu numero é maior");
System.out.println("2 chute, Qual é o numero?");
B=ent.nextFloat();
if (num==B)
System.out.println ("parabéns foi sorteado");
if (num>B)
System.out.println ("meu numero é menor");
if (num<B)
System.out.println ("meu numero é maior");
System.out.println("3 chute, Qual é o numero?");
C=ent.nextFloat();
if (num==C)
System.out.println ("parabéns foi sorteado");
if (num>C)
System.out.println ("meu numero é menor");
if (num<C)
System.out.println ("meu numero é maior");
}
}
cara seguinte, como te falei vai funcionar, mas vc não garante que com 3 perguntas vc advinhe o número. Vc não está usando de dividir pela metade como te falei.
att Davi
GOSTEI 0
Davi Costa
29/03/2011
Dá uma olhada nesse exemplo e adapta para sua necessidade:
public static void main(String args[]){
int arr[]= new int[1000];
for (int i=0; i< arr.length; i++){
arr[i]=i+1;
}
Scanner scan = new Scanner (System.in);
int esq=arr[0];
int dir= arr[999];
int meio= 500;
int count= 0;
System.out.println("Seu numero é >( digite 1),<(digite 2) ou =(digite 3) a "+ meio);
int a= scan.nextInt();
while (a!=3){
if(a == 1){
count=count + 1;
esq= meio+1;
meio= (esq+dir) / 2;
System.out.println("Seu numero é >( digite 1),<(digite 2) ou =(digite 3) a "+ meio);
a= scan.nextInt();
}
else if(a ==2){
count= count+1;
dir= meio-1;
meio= (esq+dir)/2;
System.out.println("Seu numero é >( digite 1),<(digite 2) ou =(digite 3) a "+ meio);
a= scan.nextInt();
}
}
if(a==3){
count= count+1;
System.out.println("Você acertou com "+count+" respostas");
}
}
Att Davi
public static void main(String args[]){
int arr[]= new int[1000];
for (int i=0; i< arr.length; i++){
arr[i]=i+1;
}
Scanner scan = new Scanner (System.in);
int esq=arr[0];
int dir= arr[999];
int meio= 500;
int count= 0;
System.out.println("Seu numero é >( digite 1),<(digite 2) ou =(digite 3) a "+ meio);
int a= scan.nextInt();
while (a!=3){
if(a == 1){
count=count + 1;
esq= meio+1;
meio= (esq+dir) / 2;
System.out.println("Seu numero é >( digite 1),<(digite 2) ou =(digite 3) a "+ meio);
a= scan.nextInt();
}
else if(a ==2){
count= count+1;
dir= meio-1;
meio= (esq+dir)/2;
System.out.println("Seu numero é >( digite 1),<(digite 2) ou =(digite 3) a "+ meio);
a= scan.nextInt();
}
}
if(a==3){
count= count+1;
System.out.println("Você acertou com "+count+" respostas");
}
}
Att Davi
GOSTEI 0
Marcelo Silva
29/03/2011
import javax.swing.JOptionPane;
public class SorteiaNum {
/**
* @param args
*/
public static void main(String[] args) {
int numeroSorteado = (int)(Math.random()* 10) + 1;
boolean status = false;
int i = 0;
while(status == false && i < 3){
int numeroEscolhido = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero"));
if(numeroEscolhido == numeroSorteado){
JOptionPane.showMessageDialog(null,"Acertou");
status = true;
}
else if(numeroEscolhido < numeroSorteado){
JOptionPane.showMessageDialog(null,"Errou, numero escolhido e maior");
status = false;
i++;
}
else{
JOptionPane.showMessageDialog(null,"Errou, numero escolhido e menor ");
status = false;
i++;
}
}
JOptionPane.showMessageDialog(null,"Numero sorteado pela maquina : " + numeroSorteado);
}
}
public class SorteiaNum {
/**
* @param args
*/
public static void main(String[] args) {
int numeroSorteado = (int)(Math.random()* 10) + 1;
boolean status = false;
int i = 0;
while(status == false && i < 3){
int numeroEscolhido = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero"));
if(numeroEscolhido == numeroSorteado){
JOptionPane.showMessageDialog(null,"Acertou");
status = true;
}
else if(numeroEscolhido < numeroSorteado){
JOptionPane.showMessageDialog(null,"Errou, numero escolhido e maior");
status = false;
i++;
}
else{
JOptionPane.showMessageDialog(null,"Errou, numero escolhido e menor ");
status = false;
i++;
}
}
JOptionPane.showMessageDialog(null,"Numero sorteado pela maquina : " + numeroSorteado);
}
}
GOSTEI 0
Marcelo Silva
29/03/2011
import javax.swing.JOptionPane;
public class SorteiaNum {
/**
* @param args
*/
public static void main(String[] args) {
int numeroSorteado = (int)(Math.random()* 10) + 1;
boolean status = false;
int i = 0;
while(status == false && i < 3){
int numeroEscolhido = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero"));
if(numeroEscolhido == numeroSorteado){
JOptionPane.showMessageDialog(null,"Acertou");
status = true;
}
else if(numeroEscolhido < numeroSorteado){
JOptionPane.showMessageDialog(null,"Errou, numero escolhido e maior");
status = false;
i++;
}
else{
JOptionPane.showMessageDialog(null,"Errou, numero escolhido e menor ");
status = false;
i++;
}
}
JOptionPane.showMessageDialog(null,"Numero sorteado pela maquina : " + numeroSorteado);
}
}
public class SorteiaNum {
/**
* @param args
*/
public static void main(String[] args) {
int numeroSorteado = (int)(Math.random()* 10) + 1;
boolean status = false;
int i = 0;
while(status == false && i < 3){
int numeroEscolhido = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero"));
if(numeroEscolhido == numeroSorteado){
JOptionPane.showMessageDialog(null,"Acertou");
status = true;
}
else if(numeroEscolhido < numeroSorteado){
JOptionPane.showMessageDialog(null,"Errou, numero escolhido e maior");
status = false;
i++;
}
else{
JOptionPane.showMessageDialog(null,"Errou, numero escolhido e menor ");
status = false;
i++;
}
}
JOptionPane.showMessageDialog(null,"Numero sorteado pela maquina : " + numeroSorteado);
}
}
GOSTEI 0