I need to find a way to create the three different classes for this practice. Cr
ID: 3714696 • Letter: I
Question
I need to find a way to create the three different classes for this practice.
Create an application with the following three classes:
class Player // put it in a package called playerspackage
class GuessGame // put it in a package called guessgamepackage
class GameLauncher // put it in the package guessgamepackage
Class GameLauncher has its own main method and will instantiate a GuessGame object.
Class GuessGame creates two Player objects, create an integer number between 50 and 90, then asks each player to guess the integer number it has created. After that the GuessGame class checks the result, and either prints out information about the winning player(s) or asks them to guess again. The game terminates when at least one player guesses the right number. Assume that the Players are very smart, which means that they will not guess the same number twice or guess a number that has been guessed by the other player.
Here is an example of a possible output
I have a number between 50 and 90, guess the number?
Player 1: I am guessing 53
Player 2: I am guessing 55
No winners: Please try again
Player 1: I am guessing 67
Player 2: I am guessing 87
Great, we have a winner!
My number is 87, so Player 2 wins!
Hints:
Use Math.random() method to generate random numbers between 0 and 1.
Then use
50 + (int) (Math.random() * 40)
to generate a random number between 50 and 90.
Use ArrayList objects as a memory for each player.
For example: ArrayList myMemory = new ArrayList();
Explanation / Answer
//Code to copy
//GameLauncher.java
//Create a pakcage named playerspackage
package playerspackage;
public class GameLauncher {
public static void main(String[] args) {
//Create an instance of GuessGame
GuessGame game = new GuessGame();
//callg playGame method
game.playGame();
}
}
---------------------------------------------------------------------------------------------
//Player.java
package playerspackage;
public class Player
{
private int guess;
private final int MIN=50;
private final int MAX=90;
//guess method to guess a random number of Player
public void guess()
{
guess=0;
guess = (int) (Math.random() * (MAX-MIN)+MIN);
System.out.printf("I am guessing " + guess);
}
//Get guess value
public int getguess(){
return guess;
}
}
---------------------------------------------------------------------------------------------
//GuessGame.java
package playerspackage;
public class GuessGame {
//declare two Player class objects
private Player player1;
private Player player2;
//Method to start the game
public void playGame()
{
//instantiate Player class objects
player1 = new Player();
player2 = new Player();
boolean repeat=true;
//set min and max values to generate random numbers
int MIN=50;
int MAX=90;
//generate a random numebr in a range of 50 and 90
int targetNumber = (int) (Math.random() * (MAX-MIN)+MIN);
System.out.println("I have a number between "+MIN+" and "+MAX+", guess the number?");
//repeat the whil loop until winner is found
while(repeat)
{
System.out.printf("Player 1:");
//call guess method on player1
player1.guess();
System.out.println();
System.out.print("Player 2:");
//call guess method on player1
player2.guess();
System.out.println();
//check if player 1's number is target number
if (player1.getguess() == targetNumber)
{
repeat=false;
System.out.println("Great, we have a winner!");
System.out.println("My number is "+player1.getguess()+", so Player 1 wins!");
}
//check if player 1's number is target number
else if (player1.getguess() == targetNumber)
{
repeat=false;
System.out.println("Great, we have a winner!");
System.out.println("My number is "+player2.getguess()+", so Player 2 wins!");
}
else
{
System.out.println("No winners: Please try again");
}
}
}
}
---------------------------------------------------------------------------------------------
Sample Output:
I have a number between 50 and 90, guess the number?
Player 1:I am guessing 70
Player 2:I am guessing 63
No winners: Please try again
Player 1:I am guessing 78
Player 2:I am guessing 79
No winners: Please try again
Player 1:I am guessing 58
Player 2:I am guessing 53
No winners: Please try again
Player 1:I am guessing 69
Player 2:I am guessing 82
Great, we have a winner!
My number is 69, so Player 1 wins!