Math.random

Java

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.foi dada a dica de usar o método da classe math..mas como começar?

int num = (int) (Math.random()*100) + 1;



Fado

Fado

Curtidas 0

Respostas

Fado

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

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
GOSTEI 0
Fado

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
GOSTEI 0
Davi Costa

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
GOSTEI 0
Davi Costa

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
GOSTEI 0
Marcelo Silva

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);

}

}
GOSTEI 0
Marcelo Silva

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);

}

}
GOSTEI 0
POSTAR