Main.java §
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter name for Player 1: ");
Player player1 = new Player(scan.nextLine());
System.out.println("Enter name for Player 2: ");
Player player2 = new Player(scan.nextLine());
DiceGame game = new DiceGame(player1, player2);
game.play();
}
}
Player.java §
public class Player {
int points = 0;
int unsecuredPoints = 0;
String name = "";
public Player(String name) {
this.name = name;
}
public void addPoints(int points) {
this.points += points;
}
public int getPoints() {
return this.points;
}
}
DiceGame.java §
import java.util.Scanner;
public class DiceGame {
Player player1;
Player player2;
int turn = 0;
boolean runGame = true;
public DiceGame(Player player1, Player player2) {
this.player1 = player1;
this.player2 = player2;
}
public void play() {
while (runGame) {
System.out.println("--------------------------------------------");
System.out.println(player1.name + " has " + player1.points + " points");
System.out.println(player2.name + " has " + player2.points + " points");
if (player1.points >= 30) {
System.out.println(player1.name + " wins!");
runGame = false;
System.out.println("--------------------------------------------");
break; } else if (player2.points >= 30) {
System.out.println(player2.name + " wins!");
runGame = false;
System.out.println("--------------------------------------------");
break; }
System.out.println("--------------------------------------------");
if (turn == 0) {
System.out.println(player1.name + "'s turn!");
System.out.println("Press enter to roll");
Scanner scan = new Scanner(System.in);
scan.nextLine();
roll(player1);
} else {
System.out.println(player2.name + "'s turn");
System.out.println("Press enter to roll");
Scanner scan = new Scanner(System.in);
scan.nextLine();
roll(player2);
}
}
}
public void roll(Player player) {
int roll = (int) (Math.random() * 6) + 1;
System.out.println(player.name + " rolled a " + roll);
if (roll == 1) {
player.unsecuredPoints = 0;
System.out.println(player.name + " lost all unsecured points");
if (turn == 1) {
turn = 0;
} else {
turn = 1;
}
} else {
player.unsecuredPoints += roll;
System.out.println(player.name + " has " + player.unsecuredPoints + " unsecured points");
System.out.println("Would you like to roll again? (y/n)");
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
if (input.equalsIgnoreCase("y")) {
roll(player);
} else {
player.addPoints(player.unsecuredPoints);
System.out.println(player.name + " secured " + player.unsecuredPoints + " points. They now have " + player.points + " points");
player.unsecuredPoints = 0;
if (turn == 1) {
turn = 0;
} else {
turn = 1;
}
}
}
}
}