import java.util.Scanner;
public class Weekly_Program_05 {
public static void main (String[] args) {
welcome();
Scanner stdIn = new Scanner(System.in);
int d1 = rollDie(1,6);
int d2 = rollDie(1,6);
int oMajor = majorDie(d1,d2);
int oMinor = minorDie(d1,d2);
int pMajor = majorDie(d1,d2);
int pMinor = minorDie(d1,d2);
int wins = 0;
int ties = 0;
int losses = 0;
String s = "y";
String y = "y";
String n = "n";
System.out.println('\r' + "Do you wish to play? [y/n]: ");
s = stdIn.nextLine();
while (s.charAt(0) == y.charAt(0))
{
printDice(d1, d2);
if (result(oMajor, oMinor, pMajor, pMinor) == 1)
wins++;
System.out.println("Congrats, you win!");
if (result(oMajor, oMinor, pMajor, pMinor) == -1)
losses++;
System.out.println("Sorry, you lose!");
if (result(oMajor, oMinor, pMajor, pMinor) == 0)
ties++;
System.out.println("You tied!");
System.out.println('\r' + "Do you wish to play again? [y/n]: ");
s = stdIn.nextLine();
}
if (s.charAt(0) == n.charAt(0))
report(wins, ties, losses);
}
public static void welcome() {
System.out.println(" Welcome to Computer Dice");
System.out.println("---------------------------------------------");
System.out.println("Your opponent will first roll their two dice.");
System.out.println("Next you will roll your two dice." + '\r');
System.out.println("The outcome of each round will be based on");
System.out.println("the values of your dice - high beats low,");
System.out.println("pairs beat non-pairs.");
System.out.println("---------------------------------------------");
}
public static int rollDie(int low, int high) {
return (int)(Math.random() * (high-low+1)) + low;
}
public static int majorDie(int d1, int d2) {
if (d1 > d2)
return d1;
else
return d2;
}
public static int minorDie(int d1, int d2) {
if (d1 < d2)
return d1;
else
return d2;
}
public static void printDice(int d1, int d2) {
System.out.println('\r' + "Opponent");
System.out.println("--------");
System.out.println(" " + d1 + " " + d2);
System.out.println('\r' + " Player ");
System.out.println("--------");
System.out.println(" " + d1 + " " + d2);
}
public static boolean isPair(int d1, int d2) {
if (d1 == d2)
return true;
else
return false;
}
public static int result(int oMajor, int oMinor, int pMajor, int pMinor) {
if (isPair(oMajor, oMinor) && !isPair(pMajor, pMinor))
return -1;
else if (!isPair(oMajor, oMinor) && isPair(pMajor, pMinor))
return 1;
else if (isPair(oMajor, oMinor) && isPair(pMajor, pMinor))
if (oMajor > pMajor)
return -1;
else if (oMajor < pMajor)
return 1;
else
return 0;
else if (!isPair(oMajor, oMinor) && !isPair(pMajor, pMinor))
if (oMajor > pMajor)
return -1;
else if (oMajor > pMajor)
return 1;
else if (oMajor == pMajor)
if (oMinor > pMinor)
return -1;
else if (oMinor < pMinor)
return 1;
else
return 0;
return 0;
}
public static void report(int wins, int ties, int losses) {
System.out.println('\r' + "Computer Dice Results");
System.out.println("---------------------");
System.out.println("You played " + (wins + ties + losses) + " rounds.");
System.out.println('\r' + "You won " + wins + " rounds.");
System.out.println("You tied " + ties + " rounds.");
System.out.println("You lost " + losses + " rounds.");
}
}