JAVA PROGRAMMINGJAVA! JAVA! JAVA! Write a program that lets the user play the ga
ID: 3727354 • Letter: J
Question
JAVA PROGRAMMINGJAVA! JAVA! JAVA!
Write a program that lets the user play the game of Rock, Paper, Scissors against the computer. The program should work as follows:-
When the program begins, the user enters his or her choice of “rock”, “paper”, or “scissors” at the keyboard using a menu in a function, userChoice, that returns a character.
Next, there should be a function, computerChoice, that generates the computer’s play. A random number in the range of 1 through 3 is generated. (NOTE: You’ll have to do some research on how to create random numbers correctly.) If the number is 1, then the computer has chosen rock. If the number is 2, then the computer has chosen paper. If the number is 3, then the computer has chosen scissors. The computer’s choice is returned as a character.
After, a function, determineWinner, will determine the winner between the user’s choice vs. the computer’s choice. (NOTE: It will return nothing, but it will take in the user’s choice and the computer’s choice as the two arguments.) The result is selected according to the following rules:
If one player chooses rock and the other player chooses scissors, then rock wins. (The rock smashes the scissors.)
If one player chooses scissors and the other player chooses paper, then scissors wins. (Scissors cuts paper.)
If one player chooses paper and the other player chooses rock, then paper wins. (Paper wraps rock.)
If both players make the same choice, the game ends in a draw and there is no winner.
Finally, after a result is selected, there should be a function, playAgain, in which the player should have the option of playing again. This should return a boolean. Be sure that the program contains at least the four functions mentioned .
Explanation / Answer
package org.students;
import java.util.Random;
import java.util.Scanner;
public class RockPaperScissors {
/*
* Creating an Scanner class object which is used to get the inputs entered
* by the user
*/
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
/* This while loop continues to execute
* until the user enters either 'y' as user choice
*/
while (true) {
//calling the methods
char user = userChoice();
char computer = computerChoice();
determineWinner(user, computer);
char ch = playAgain();
if (ch == 'y' || ch == 'Y')
continue;
else
break;
}
}
//This method will prompt the user to play the game again
private static char playAgain() {
// Getting the character from the user 'Y' or 'y' or 'N' or 'n'
System.out.print("Do you want to Play again (Y/N) ?");
char ch = sc.next(".").charAt(0);
return ch;
}
//This method will find the winner
private static void determineWinner(char user, char computer) {
String winner = "";
/*
* Based on user and computer selected numbers the corresponding block
* will get executed
*/
if (user == 'r' && computer == 's') {
winner = "Rock versus Scissors..You win!";
} else if (user == 's' && computer == 'r') {
winner = "Scissors versus Rock..You Lose!";
} else if (user == 'r' && computer == 'p') {
winner = "Rock versus Paper..You Lose!";
} else if (user == 'p' && computer == 'r') {
winner = "Paper versus Rock..You Win!";
} else if (user == 'p' && computer == 's') {
winner = "Paper versus Scissors..You lose!";
} else if (user == 's' && computer == 'p') {
winner = "Scissors versus Paper..You Win!";
} else {
if (user == 'r' && computer == 'r') {
winner = "Rock versus Rock...Tie!";
} else if (user == 'p' && computer == 'p') {
winner = "Paper versus Paper...Tie!";
} else if (user == 's' && computer == 's') {
winner = "Scissors versus Scissors...Tie!";
}
}
System.out.println(winner);
}
//This method will return the computer choice
private static char computerChoice() {
char comp = 0;
// Creating an random class object
Random r = new Random();
int num = r.nextInt((3 - 1) + 1) + 1;
if (num == 1)
comp = 'r';
else if (num == 2)
comp = 'p';
else if (num == 3)
comp = 's';
return comp;
}
//This method will return the user choice
private static char userChoice() {
char user;
while (true) {
System.out.print("Enter Choice Rock 'r',Paper 'p', Scissors 's' :");
user = sc.next(".").charAt(0);
if (user != 'r' && user != 'p' && user != 's') {
System.out.println("** Invalid Input **");
continue;
} else
break;
}
return user;
}
}
_________________
Output:
Enter Choice Rock 'r',Paper 'p', Scissors 's' :r
Rock versus Scissors..You win!
Do you want to Play again (Y/N) ?Y
Enter Choice Rock 'r',Paper 'p', Scissors 's' :p
Paper versus Paper...Tie!
Do you want to Play again (Y/N) ?Y
Enter Choice Rock 'r',Paper 'p', Scissors 's' :s
Scissors versus Scissors...Tie!
Do you want to Play again (Y/N) ?Y
Enter Choice Rock 'r',Paper 'p', Scissors 's' :r
Rock versus Rock...Tie!
Do you want to Play again (Y/N) ?Y
Enter Choice Rock 'r',Paper 'p', Scissors 's' :r
Rock versus Paper..You Lose!
Do you want to Play again (Y/N) ?N
_____________Thank You
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.