Simple Guessing Game in Java between 3 Players | OOP

The Guessing Game

Summary:

The guessing game involves a ‘game’ object and three ‘player’ objects. The game gen- erates a random number between 0 and 9, and the three player objects try to guess it.

Classes:

GuessGame.class Player.class GameLauncher.class

The Logic:

  1. The GameLauncher class is where the application starts; it has the main() method. 2) In the main() method, a GuessGame object is created, and its startGame() method

is called.

  1. The GuessGame object’s startGame() method is where the entire game plays out. It creates three players, then “thinks” of a random number (the target for the players to guess). It then asks each player to guess, checks the result, and either prints out information about the winning player(s) or asks them to guess again.
public class GameLauncher {
    public static void main(String[] args) {
        GuessGame guessGame = new GuessGame();
        guessGame.startGame();
    }
}

class Player {

    int number;

    void guess() {
        this.number = (int) (Math.random() * 10);
    }
}

class GuessGame {

    Player player1, player2, player3;

    void startGame() {

        player1 = new Player();
        player2 = new Player();
        player3 = new Player();

        int guessPlayer1, guessPlayer2, guessPlayer3;
        final int targetNumber = (int) (Math.random() * 10);
        int numberOfTriesUntil1PlayerSucceed = 0;
        boolean isPlayer1Right = false, isPlayer2Right = false, isPlayer3Right = false;

        System.out.println("System is thinking of a number between 0 and 9...");
        System.out.println("Number to guess is " + targetNumber);

        System.out.println("GAME COMMENCE\n\n");

        while (true) {

            ++numberOfTriesUntil1PlayerSucceed; // Increment the number of tries

            System.out.println("Try Number: " + numberOfTriesUntil1PlayerSucceed + "\n");

            player1.guess(); // Players start guessing
            player2.guess();
            player3.guess();

            guessPlayer1 = player1.number;
            System.out.println("Player1 guessed " + guessPlayer1);

            guessPlayer2 = player2.number;
            System.out.println("Player2 guessed " + guessPlayer2);

            guessPlayer3 = player3.number;
            System.out.println("Player3 guessed " + guessPlayer3);

            if (guessPlayer1 == targetNumber) {
                isPlayer1Right = true;
            }
            if (guessPlayer2 == targetNumber) {
                isPlayer2Right = true;
            }
            if (guessPlayer3 == targetNumber) {
                isPlayer3Right = true;
            }
            if (isPlayer1Right || isPlayer2Right || isPlayer3Right) {
                System.out.println("\n\nWe have a winner!\n\n");
                System.out.println("Player1 got it right? " + isPlayer1Right);
                System.out.println("Player2 got it right? " + isPlayer2Right);
                System.out.println("Player3 got it right? " + isPlayer3Right);
                System.out.println("***************************************");
                break; // Game Over, so brak outta loop
            } else {
                System.out.println("Players have to try again!");
                System.out.println("***************************************\n\n");
            }
        }
        System.out.println("Game Over!");
    }
}

Output is in the first comment for your reference.

anisharya@AnishArya% javac GameLauncher.java
anisharya@AnishArya% java GameLauncher
System is thinking of a number between 0 and 9…
Number to guess is 0
GAME COMMENCE

Try Number: 1

Player1 guessed 5
Player2 guessed 7
Player3 guessed 5
Players have to try again!

***********************************

Try Number: 2

Player1 guessed 8
Player2 guessed 9
Player3 guessed 6
Players have to try again!
***************************************

Try Number: 3

Player1 guessed 9
Player2 guessed 4
Player3 guessed 4
Players have to try again!
***************************************

Try Number: 4

Player1 guessed 0
Player2 guessed 6
Player3 guessed 0

We have a winner!

Player1 got it right? true
Player2 got it right? false
Player3 got it right? true
***************************************