13.2k views
0 votes
In JAVA please:

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:
O If one player chooses rock and the other player chooses scissors, then rock wins. (The rock smashes the scissors.)
O If one player chooses scissors and the other player chooses paper, then scissors wins. (Scissors cuts paper.)
O If one player chooses paper and the other player chooses rock, then paper wins. (Paper wraps rock.)
O 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 .

User Vildric
by
4.5k points

1 Answer

7 votes

Answer:

If there's any problem with the out put, please let me know

RockPaperScissors.java

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) {

while(true)

char user=selection();

char computer=CP();

w(user,computer);

char ch=Repeat();

if(ch=='y'

}

private static char Repeat() {

//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;

}

private static void w(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);

}

private static char CP() {

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;

}

private static char selection() {

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 Paper..You Lose!

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) ?y

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' :s

Scissors versus Paper..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) ?n

User Gustavo Straube
by
4.5k points