Question & Answer: IN JAVA: This game is meant for two or more players., Each player starts out with 50 points, as each player takes a turn rolling the dic…..

IN JAVA: This game is meant for two or more players., Each player starts out with 50 points, as each player takes a turn rolling the dice; the amount generated by the dice is subtracted from the player’s points. The first player with exactly one point remaining wins. If a player’s remaining points minus the amount generated by the dice results in a value less than one, then the amount should be added to the player’s points. (As a alternative, the game can be played with a set number of turns. In this case the player with the amount of points closest to one, when all rounds have been played, wins.) Write a program that simulates the game being played by two players. Use the Die class that was presented in Chapter 6 to simulate the dice. Write a Player class to simulate the player. Enter the player’s names and display the die rolls and the totals after each round.

THIS IS THE DIE CLASS: please complete entire program and upload screenshot of output along with the answer.

import java.util.Random;

/**
The Die class simulates a six-sided die.
*/

public class Die
{
private int sides; // Number of sides
private int value; // The die’s value

/**
The constructor performs an initial
roll of the die.
@param numSides The number of sides for this die.
*/

public Die(int numSides)
{
sides = numSides;
roll();
}

/**
The roll method simlates the rolling of
the die.
*/

public void roll()
{
// Create a Random object.
Random rand = new Random();

// Get a random value for the die.
value = rand.nextInt(sides) + 1;
}

/**
getSides method
@return The number of sides for this die.
*/

public int getSides()
{
return sides;
}

/**
getValue method
@return The value of the die.
*/

public int getValue()
{
return value;
}
}

OUTPUT SHOULD BE SOMETHING LIKE:

———————————

Round 1:

player1 rolled a 6

player2 rolled a 4

player1 has 44 points

player2 has 46 points

player1 wins.

———————————-

Expert Answer

 

import java.io.*;
import java.util.*;

class Die
{
private int sides;
private int value;

public Die(int numSides)
{
sides = numSides;
roll();
}

public void roll()
{
// Create a Random object.
Random rand = new Random();

// Get a random value for the die.
value = rand.nextInt(sides) + 1;
}

public int getSides()
{
return sides;
}

public int getValue()
{
return value;
}
}

class Player{

private String name;
private int score;
private Die die;
public Player(String a){
name = a;
score = 50;
die = new Die(6);
}
public int roll(){
die.roll();
return (die.getValue());
}
public void modifyScore(int a){
if ((score – a) < 1)
score = score + a;
else
score = score -a;
}
public int getScore(){
return score;
}
public String getName(){
return name;
}

}

public class DemoGame {
public static void main(String[] args){
int s1,s2;
int diff1, diff2;
String name1 , name2;
Scanner sc = new Scanner(System.in);
System.out.println(“Enter Player 1 Name:”);
name1 = sc.next();
System.out.println(“Enter Player 2 Name:”);
name2 = sc.next();

Player p1 = new Player(name1);
Player p2 = new Player(name2);
int count = 1;
while (p1.getScore() != 1 && p2.getScore() != 1){
System.out.println(“—————————–“);
System.out.println(“Round ” + count + “:”);
s1 = p1.roll();
p1.modifyScore(s1);
System.out.println(p1.getName() + ” rolled a ” + s1);
diff1 = p1.getScore() – 1;
s2 = p2.roll();
p2.modifyScore(s2);
System.out.println(p2.getName() + ” rolled a ” + s2);
diff2 = p2.getScore() – 1;
System.out.println(p1.getName() + ” has ” + p1.getScore() + ” points”);
System.out.println(p2.getName() + ” has ” + p2.getScore() + ” points”);
if (diff1 == diff2){
System.out.println(“It is a tie”);
}
else {
if (diff1 < diff2){
System.out.println(p1.getName() +” wins”);
}
else {
System.out.println(p2.getName() + ” wins”);
}
}
count++;
}

}
}

Still stressed from student homework?
Get quality assistance from academic writers!