Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

* This game is meant for two or more players. In the game, the * players take tu

ID: 3794840 • Letter: #

Question

* This game is meant for two or more players. In the game, the * players take turns flipping a coin. Before the coin is flipped, the * players should guess if the coin will land face up or face down. * If a player guesses correctly, then that player is awarded a point. If the player guess * incorrectly, than that player will lose a point. The first player to score five points wins. * * Write a program that simulates the game being played by two players. Use coin class to simulate * the coin and a player class to simulate the players.

Explanation / Answer

// Player.java
import java.util.Random;

class Player
{
private int playerScore;

public Player()
{
playerScore = 0;
}

public void incrementScore()
{
playerScore++;
}

public void decrementScore()
{
if(playerScore > 0)
playerScore--;
else
System.out.println("Score already zero");
}

public int getPlayerScore()
{
return playerScore;
}
}


// Coin.java
import java.util.Random;
import java.util.Scanner;

class Coin
{
private static String coinSide;

public Coin()
{
this.coinSide = "Head";
coinToss();
}

public int coinToss()
{
Random randnumber = new Random();

int number = randnumber.nextInt(2);
if (number == 0)
{
this.coinSide = "Head";
}
else
{
this.coinSide = "Tail";
}
return number;
}

public static String getcoinSide()
{
return coinSide;
}

public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
Player p1 = new Player();
Player p2 = new Player();

Coin coin1 = new Coin();
Coin coin2 = new Coin();

while(true)
{
System.out.print("Player 1, Enter 1 for tail or 0 for heads: ");
int inputGuess = scan.nextInt();

if(inputGuess == coin1.coinToss())
{
p1.incrementScore();
System.out.println("Correct guess, Coin side: " + Coin.getcoinSide());
}
else
{
p1.decrementScore();
System.out.println("Bad guess, Coin side: " + Coin.getcoinSide());
}

System.out.println("Player 1 current score: " + p1.getPlayerScore());


System.out.print("Player 2, Enter 1 for tail or 0 for heads: ");
inputGuess = scan.nextInt();

if(inputGuess == coin2.coinToss())
{
p2.incrementScore();
System.out.println("Correct guess, Coin side: " + Coin.getcoinSide());

}
else
{
p2.decrementScore();
System.out.println("Bad guess, Coin side: " + Coin.getcoinSide());

}
  
System.out.println("Player 2 current score: " + p2.getPlayerScore());

if(p1.getPlayerScore() == 5)
{
System.out.println();
System.out.println("Player 1 wins");
break;
}

else if(p2.getPlayerScore() == 5)
{
System.out.println();
System.out.println("Player 2 wins");
break;
}
  
}
}
}   


/*
output:

Player 1, Enter 1 for tail or 0 for heads: 1
Score already zero
Bad guess, Coin side: Head
Player 1 current score: 0
Player 2, Enter 1 for tail or 0 for heads: 1
Correct guess, Coin side: Tail
Player 2 current score: 1
Player 1, Enter 1 for tail or 0 for heads: 0
Correct guess, Coin side: Head
Player 1 current score: 1
Player 2, Enter 1 for tail or 0 for heads: 1
Correct guess, Coin side: Tail
Player 2 current score: 2
Player 1, Enter 1 for tail or 0 for heads: 0
Bad guess, Coin side: Tail
Player 1 current score: 0
Player 2, Enter 1 for tail or 0 for heads: 1
Bad guess, Coin side: Head
Player 2 current score: 1
Player 1, Enter 1 for tail or 0 for heads: 0
Correct guess, Coin side: Head
Player 1 current score: 1
Player 2, Enter 1 for tail or 0 for heads: 1
Correct guess, Coin side: Tail
Player 2 current score: 2
Player 1, Enter 1 for tail or 0 for heads: 1
Bad guess, Coin side: Head
Player 1 current score: 0
Player 2, Enter 1 for tail or 0 for heads: 0
Correct guess, Coin side: Head
Player 2 current score: 3
Player 1, Enter 1 for tail or 0 for heads: 1
Correct guess, Coin side: Tail
Player 1 current score: 1
Player 2, Enter 1 for tail or 0 for heads: 1
Correct guess, Coin side: Tail
Player 2 current score: 4
Player 1, Enter 1 for tail or 0 for heads: 1
Correct guess, Coin side: Tail
Player 1 current score: 2
Player 2, Enter 1 for tail or 0 for heads: 1
Bad guess, Coin side: Head
Player 2 current score: 3
Player 1, Enter 1 for tail or 0 for heads: 0
Bad guess, Coin side: Tail
Player 1 current score: 1
Player 2, Enter 1 for tail or 0 for heads: 1
Correct guess, Coin side: Tail
Player 2 current score: 4
Player 1, Enter 1 for tail or 0 for heads: 1
Correct guess, Coin side: Tail
Player 1 current score: 2
Player 2, Enter 1 for tail or 0 for heads: 1
Correct guess, Coin side: Tail
Player 2 current score: 5

Player 2 wins


*/