Código do jogo de adivinhação

7 respostas
A
class Player {
 int number = 0;

 void guess() {
  targetNumber = (int) (Math.random() * 10);
  System.out.println("Estou pensando em um número entre 0 e 9...");
  }
 }

class GameLauncher {
 public static void main (String[] args) {
    GuessGame game = new GuessGame();
    game.startGame(); 
 
 class GuessGame {
 Player p1;
 Player p2;
 Player p3;

 int guessp1 = 0;
 int guessp2 = 0;
 int guessp3 = 0;

 boolean p1isRight = false;
 boolean p2isRight = false;
 boolean p3isRight = false;
 int x = 10;

 void startGame() {
 p1 = new Player();
 p2 = new Player();
 p3 = new Player();
 }
 
while (x == 10) {
  System.out.println("O número a adivinhar é" + targetNumber);

 p1.guess();
 p2.guess();
 p3.guess();

 guessp1 = p1.number;
 System.out.println("O jogador um forneceu o palpite" + guessp1);
 guessp2 = p2.number;
 System.out.println("O jogador dois forneceu o palpite" + guessp2);
 guessp3 = p3.number;
 System.out.println("O jogador três forneceu o palpite" + guessp3);

 if (guessp1 == targetNumber) {
     p1isRight = true;
 }
 if (guessp2 == targetNumber) {
     p2isRight = true;
 }
 if (guessp3 == targetNumber) {
     p3isRight = true;
 }

 if (p1isRight || p2isRight || p3isRight) {
 
     System.out.println("Temos um vencedor!");
     System.out.println("O jogador um acertou? " + p1isRight);
     System.out.println("O jogador dois acertou? " + p2isRight);
     System.out.println("O jogador três acertou? " + p3isRight);
     System.out.println("Fim do jogo.");
     x = x + 1;
     } else {
       System.out.println("Os jogadores terão que tentar novamente.");
         } // fim de else
        } // fim do loop
       } // fim da classe guessgame
      } // fim do metodo
     } // fim da classe gamelauncher

Bom tá ai, ele não compila da 2 erros no loop (while) ja tentei de tudo e nada...

7 Respostas

fabiel

Aew brother nao eh legal ficar criando topicos repetidos, se tem uma duvida post e espere a resposta.
Com relação a seu código post os erros que esta sendo gerado !

http://www.guj.com.br/posts/list/66038.java

A

sem querer cara apertei 2x em enviar, mal ae.

S

Qual erro está dando irmão?
Você está usando algum programa como Netbeans ou eclipse?
Diz ai que tentamos te ajudar!

S

Cara olhando a grosso modo, o seu while não pode ser igual a 10, vc está trabalhando com um loop de repetição então vc pode usar <, > <= >=, para que o while repita o código enquanto a sua condição for verdadeira, pense no while como um boolean!
ou seja enquanto(while) <condição_for_verdade>{faça}.
E vc precisa criar uma instancia de objeto para targetNumber

A

meu while tava assim while(true) {

ai no final tinha
break;

funciona assim ?

A

Pessoal dei uma leve arrumada, mas mesmo assim ainda não compila (estou usando o dos), aparece "Illegal start of type" (erro no while)

public class GameLauncher {
 public static void main (String[] args) {
 Guessgame game = new GuessGame();
 game.startGame();

 class GuessGame { 
 public void startGame() {
 class Player { 
  int number = 0;

  Player p1 = new Player();
  Player p2 = new Player();
  Player p3 = new Player();

  int guessp1 = 0;
  int guessp2 = 0;
  int guessp3 = 0;

  boolean p1isRight = false;
  boolean p2isRight = false;
  boolean p3isRight = false;

while(true) {

 int number = (int) (Math.random() * 10);
 System.out.println("Estou pensando em um número entre 0 e 9...");
 System.out.println("O número a adivinhar é " + number);

 p1.guess();
 p2.guess();
 p3.guess();

 guessp1 = p1.number;
 System.out.println("O jogador um forneceu o palpite " + guessp1);
 guessp2 = p2.number;
 System.out.println("O jogador dois forneceu o palpite " + guessp2);
 guessp3 = p3.number;
 System.out.println("O jogador três forneceu o palpite " + guessp3);

 if (guessp1 == number) {
     p1isRight = true;
 }
 if (guessp2 == number) {
     p2isRight = true;
 }
 if (guessp3 == number) {
     p3isRight = true;
 }

 if (p1isRight || p2isRight || p3isRight) { 

     System.out.println("Temos um vencedor!");
     System.out.println("O jogador um acertou? " + p1isRight);
     System.out.println("O jogador dois acertou? " + p2isRight);
     System.out.println("O jogador três acertou? " + p3isRight);
     System.out.println("Fim do jogo.");
     break;
 } else {
       System.out.println("Os jogadores terão que tentar novamente.");
      } // fim de else
     } // fim de while
    } // fim de classe player
   } // fim da startgame
  } // fim da classe guessgame
 } // fim de main 
} // fim da classe gamelauncher
D

bem cara, eu não entendi muito bem teu código, fiz o meu, vê se você consegue entender…
abraços.

import javax.swing.JOptionPane;

public class Adivinha{
    public static void main(String args[]){
        comecaJogo();
    }
    static void comecaJogo(){
         int number = (int) (Math.random() * 10); // gera o número aleatório
         int palpite;
         boolean acertou = false; // define como falso se acertou
         while(acertou == false){ // enquanto for falso... ele vai executar
             palpite = Integer.parseInt(JOptionPane.showInputDialog(null, "Jogador 1, qual seu palpite? entre 0 e 9", "Palpite Player 1", 1));
           
             if(palpite == number){
                 JOptionPane.showMessageDialog(null, "Parabéns, Jogador 1 acertou! o número era " + number, "TEMOS UM VENCEDOR", 1);
                 acertou = true; // quando acerta, muda o valor e sai do while
             }
             else{
                palpite = Integer.parseInt(JOptionPane.showInputDialog(null, "Jogador 2, qual seu palpite? entre 0 e 9", "Palpite Player 2", 1));
                
                if(palpite == number){
                    JOptionPane.showMessageDialog(null, "Parabéns, Jogador 2 acertou! o número era " + number, "TEMOS UM VENCEDOR", 1);
                    acertou = true;
                }
                else{
                    palpite = Integer.parseInt(JOptionPane.showInputDialog(null, "Jogador 3, qual seu palpite? entre 0 e 9", "Palpite Player 3", 1));
                    
                    if(palpite == number){
                        JOptionPane.showMessageDialog(null, "Parabéns, Jogador 3 acertou! o número era " + number, "TEMOS UM VENCEDOR", 1);
                        acertou = true;
                    }
                    else{
                        JOptionPane.showMessageDialog(null, "Que pena, ninguém acertou... tente de novo.");
                    }
                }
             }
         }
    }
}
Criado 3 de agosto de 2007
Ultima resposta 5 de ago. de 2007
Respostas 7
Participantes 4