package assignment4;
import java.awt.AWTException;
import java.awt.Robot;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Assignment4 {
public static void main(String[] args) {
String playerOne = "";
String playerTwo = "";
String pO = "";
String pT = "";
int playerOneWins = 0;
int playerTwoWins = 0;
int userInput;
int gameCount = 0;
int round = 1;
boolean bestOf = false;
boolean gameEnds = false;
Scanner stdIn = new Scanner(System.in);
//Best of X Series
while (!bestOf) {
System.out.print("How many games should be played in a best of X series? ");
gameCount = stdIn.nextInt();
userInput = gameCount % 2;
if (userInput == 1) {
System.out.println("You will be playing " + gameCount + " matches first one to win " + ((gameCount / 2) + 1) + " games wins.");
bestOf = true;
} else {
System.out.println("You have entered an invalid number for a best of X series, please enter a new number");
}
}
//Clean out the stream
stdIn.nextLine();
//Turn phase
do {
bestOf = false;
while (!bestOf) {
//PlayerOne's Turn
System.out.print("Player 1: Enter R for Rock, P for Paper, S for Scissors: ");
playerOne = stdIn.nextLine();
playerOne = playerOne.toUpperCase();
switch (playerOne) {
case "R":
pO = "Rock";
bestOf = true;
break;
case "P":
pO = "Paper";
bestOf = true;
break;
case "S":
pO = "Scissors";
bestOf = true;
break;
default:
System.out.println("Please type R, P or S");
break;
}
}
try {
Robot clearScreen = new Robot();
clearScreen.keyPress(17);
clearScreen.keyPress(76);
clearScreen.keyRelease(17);
clearScreen.keyRelease(76);
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(Assignment4.class.getName()).log(Level.SEVERE, null, ex);
} catch (AWTException ex) {
Logger.getLogger(Assignment4.class.getName()).log(Level.SEVERE, null, ex);
}
//PlayerTwo's Turn
bestOf = false;
while (!bestOf) {
System.out.print(
"Player 2: Enter R for Rock, P for Paper, S for Scissors: ");
playerTwo = stdIn.nextLine();
playerTwo = playerTwo.toUpperCase();
switch (playerTwo) {
case "R":
pT = "Rock";
bestOf = true;
break;
case "P":
pT = "Paper";
bestOf = true;
break;
case "S":
pT = "Scissors";
bestOf = true;
break;
default:
System.out.println("Please type R, P or S");
break;
}
}
try {
Robot clearScreen = new Robot();
clearScreen.keyPress(17);
clearScreen.keyPress(76);
clearScreen.keyRelease(17);
clearScreen.keyRelease(76);
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(Assignment4.class.getName()).log(Level.SEVERE, null, ex);
} catch (AWTException ex) {
Logger.getLogger(Assignment4.class.getName()).log(Level.SEVERE, null, ex);
}
//Winning Requirements
System.out.println(
"Player One arms himself with " + pO + ", Player Two arms himself with " + pT + " Round " + round + " Fight!");
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(Assignment4.class.getName()).log(Level.SEVERE, null, ex);
}
if (playerOne.equals(playerTwo)) {
System.out.println("It's a tie!");
} else if (playerOne.equals("R")) {
switch (playerTwo) {
case "S":
System.out.println("Rock mutilates scissors. Player One Wins!");
playerOneWins++;
playerOneWins++;
break;
case "P":
System.out.println("Paper covers rock. Player One Loses, but he is still alive, FINISH HIM!");
playerTwoWins++;
playerTwoWins++;
break;
}
} else if (playerOne.equals("P")) {
switch (playerTwo) {
case "S":
System.out.println("Paper goes all Emo on scissors. Player Two Wins!");
playerTwoWins++;
playerTwoWins++;
break;
case "R":
System.out.println("Paper covers rock. Player Two Loses, but he is still alive, FINISH HIM!");
playerOneWins++;
playerOneWins++;
break;
}
} else if (playerOne.equals("S")) {
switch (playerTwo) {
case "P":
System.out.println("Scissor cuts paper. Player One Wins!");
playerOneWins++;
playerOneWins++;
break;
case "R":
System.out.println("Rock SMASH! Player Two Wins!");
playerTwoWins++;
playerTwoWins++;
break;
}
} else {
System.out.println("Invalid user input.");
}
if (playerOneWins > gameCount) {
gameEnds = true;
} else if (playerTwoWins > gameCount) {
gameEnds = true;
}
round++;
} while (!gameEnds);
System.out.println("Player One Won: " + playerOneWins / 2 + " times.");
System.out.println("Player Two Won: " + playerTwoWins / 2 + " times.");
}
}