Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Update the Rock, Paper, Scissors program you wrote for Lab Project 16 (Monday, 10-23-17) so that it plays RPSLS. The Rules for RPSLS are described

Update the Rock, Paper, Scissors program you wrote for Lab Project 16 (Monday, 10-23-17) so that it plays RPSLS. The Rules for RPSLS are described by Dr. Sheldon Cooper on The Big Bang Theory (also quoted below), and shown in the diagram on the right.

image text in transcribed

Scissors cuts paper, paper covers rock, rock crushes lizard, lizard poisons Spock, Spock smashes scissors, scissors decapitates lizard, lizard eats paper, paper disproves Spock, Spock vaporizes rock, and as it always has, rock crushes scissors.

RPSLS Features (Updates):

The user input should be text, not numerical (e.g., "rock" not 1). It should also be case-insensitive (see the Sample Run, below). Suggestion: use the Scanner method nextLine() instead of the Scanner method next() for user input. Suggestion: to minimize re-write of your existing code, "translate" the user input into one of five values (there are three in the original program); a good way to do this is to define and call a method static int textToNumber(String choice).

After each round, the user is prompted as to whether they want to play again (i.e., yes or no). Suggestion: only play again if the user enters yes; otherwise, end the game. Suggestion: use the Scanner method nextLine() instead of the Scanner method next() for user input.

For each round, the user input of choice should be validated as one of the five valid choices; anything else causes the round to be forfeited and prompts the user as to whether they want to play another round. Suggestion: define a method static boolean isValid(String choice) and call it with the user choice as an if condition.

You will have to add methods for the two new choices that the user can make: int lizardChoice(int computerChoice) int SpockChoice(int computerChoice) As with the original three methods, each of these two new methods returns one of the three named int constants PLAYER1_WINS, PLAYER2_WINS, or DRAW.

You will also have to re-define (expand) the code in the original three methods rockChoice, paperChoice, and scissorsChoice to check whether the computer chose either of the two new choices (i.e., lizard or Spock).

Sample Run (user input in color):

run: Welcome to the game of Rock Paper Scissors Lizard Spock Here are the rules: Scissors cuts Paper Paper covers Rock Rock crushes Lizard Lizard poisons Spock Spock smashes Scissors Scissors decapitates Lizard Lizard eats Paper Paper disproves Spock Spock vaporizes Rock (and as it always has) Rock crushes scissors Ready? Then let's begin! Player 1, enter your choice ( rock, paper, scissors, lizard, Spock ): rock OK, you chose rock Player 2 (computer) chooses rock It's a draw Play again (yeso)? yes Player 1, enter your choice ( rock, paper, scissors, lizard, Spock ): spock OK, you chose spock Player 2 (computer) chooses lizard Lizard poisons Spock; Player 2 wins Play again (yeso)? yes Player 1, enter your choice ( rock, paper, scissors, lizard, Spock ): banana Invalid choice "banana"; try again. Player 1, enter your choice ( rock, paper, scissors, lizard, Spock ): Paper OK, you chose paper Player 2 (computer) chooses scissors Scissors cut paper; Player 2 wins Play again (yeso)? yes Player 1, enter your choice ( rock, paper, scissors, lizard, spock ): Invalid choice ""; try again. Player 1, enter your choice ( rock, paper, scissors, lizard, Spock ): SCISSORS OK, you chose scissors Player 2 (computer) chooses paper Scissors cut paper; Player 1 wins Play again (yeso)? yes Player 1, enter your choice ( rock, paper, scissors, lizard, Spock ): lIZARD OK, you chose lizard Player 2 (computer) chooses scissors Scissors decaptiate lizard; Player 2 wins Play again (yeso)? no BUILD SUCCESSFUL (total time: 1 minute 30 seconds)

Lab Project 16 code that i wrote :

/* * CPS150_Lab16.java */ package cps150_lab16; import java.io.*; import java.util.*; /** * CPS 150, Fall 2017 semester * * Lab Project 16: Rock, Paper, Scissors * * @author *** Replace with your name *** */ public class CPS150_Lab16 { // global named constants for game choices static final int ROCK = 1; static final int PAPER = 2; static final int SCISSORS = 3; // global names constants for game outcomes static final int PLAYER1_WINS = 11; static final int PLAYER2_WINS = 12; static final int DRAW = 3; // global named constant for error condition static final int ERROR = -1; /** * 1. Get human player's choice * 2. Get computer player's (random) choice * 3. Check human player's choice * 4. Check computer player's choice * 5. Announce winner */ public static void main(String[] args) { Scanner scan = new Scanner(System.in); PrintStream output = System.out; int player1, player2; // get player 1 input as 1 (rock), 2 (paper or 3 (scissors) output.print("Choose 1 (rock), 2 (paper), or 3 (scissors): "); player1 = scan.nextInt(); // Lab 16.1 // // *** Add code here to validate that player1 has entered // an integer between 1 and 3 // otherwise, ABORT the program // echo human player's choice System.out.print(" You chose "); if (player1 == ROCK) { System.out.println("rock"); } else if (player1 == PAPER) { System.out.println("paper"); } else { System.out.println("scissors"); } // now computer picks one randomly output.println("Now I choose one ..."); /* Lab 16.2 *** Add code to and un-comment the following line so that player2 is set to a random integer between 1 and 3: */ // player2 = ...; System.out.print(" I choose "); // Lab 16.3 // // *** Add code here to output the computer's choice // as "rock", "paper" or "scissors" // Lab 16.4 // // *** Add code below to compare player input against // computer's choice and output results: // // if human player chose ROCK: // call rockChoice method with computer choice // output the game's outcome (returned from rockChoice) // otherwise, if human player chose PAPER: // call paperChoice method with computer choice // output the game's outcome (returned from paperChoice) // otherwise, if human player chose SCISSORS: // call scissorcChoice method with computer choice // output the game's outcome (returned from scissorcChoice) } // end main /** * Lab 16.5 * * rockChoice(int) -> int * * method consumes the computer player's choice (ROCK, PAPER or SCISSORS), * assuming the human player has chosen ROCK * method produces game outcome (PLAYER1_WINS, PLAYER2_WINS, or DRAW) * * ex1: rockChoice(ROCK) -> DRAW * ex2: rockChoice(PAPER) -> PLAYER2_WINS * ex3: rockChoice(SCISSORS) -> PLAYER1_WINS * ex4: rockChoice(0) -> ERROR * ex5: rockChoice(-1) -> ERROR * ex6: rockChoice(4) -> ERROR * * *** ADD METHOD CODE JUST AFTER THE NEXT LINE *** */ /** * Lab 16.6 * * paperChoice(int) -> int * * method consumes the computer player's choice (ROCK, PAPER or SCISSORS), * assuming the human player has chosen PAPER * method produces game outcome (PLAYER1_WINS, PLAYER2_WINS, or DRAW) * * ex1: paperChoice(ROCK) -> PLAYER1_WINS * ex2: paperChoice(PAPER) -> DRAW * ex3: paperChoice(SCISSORS) -> PLAYER2_WINS * ex4: paperChoice(0) -> ERROR * ex5: paperChoice(-1) -> ERROR * ex6: paperChoice(4) -> ERROR * * *** ADD METHOD CODE JUST AFTER THE NEXT LINE *** */ /** * Lab 16.7 * * scissorsChoice(int) -> int * * method consumes the computer player's choice (ROCK, PAPER or SCISSORS), * assuming the human player has chosen SCISSORS * method produces game outcome (PLAYER1_WINS, PLAYER2_WINS, or DRAW) * * ex1: scissorsChoice(ROCK) -> PLAYER2_WINS * ex2: scissorsChoice(PAPER) -> PLAYER1_WINS * ex3: scissorsChoice(SCISSORS) -> DRAW * ex4: scissorsChoice(0) -> ERROR * ex5: scissorsChoice(-1) -> ERROR * ex6: scissorsChoice(4) -> ERROR * * *** ADD METHOD CODE JUST AFTER THE NEXT LINE *** */ } // end class CPS150_Lab16 

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Power Bi And Azure Integrating Cloud Analytics For Scalable Solutions

Authors: Kiet Huynh

1st Edition

B0CMHKB85L, 979-8868959943

More Books

Students also viewed these Databases questions

Question

c. What were the reasons for their move? Did they come voluntarily?

Answered: 1 week ago

Question

5. How do economic situations affect intergroup relations?

Answered: 1 week ago