Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a program which simulates a rock, paper, scissors double round robin tourn

ID: 3663505 • Letter: W

Question

Write a program which simulates a rock, paper, scissors double round robin tournament using a circular linked list. Each player in the tournament is controlled by the computer, and they randomly choose rock, paper, or scissors each round. The computer players have a win, lose, and tie record, which is displayed at the end.

Notes:

Rock wins over scissors, scissors wins over paper, and paper wins over rock.

A circular linked list is just like a single linked list (which was demonstrated in class) except the last element links to the first element.

A double round robin tournament is when each contestant competes against all other contestants in one round. In the double tournament each contestant competes against the other twice.

For instance it let’s assume there are 5 contestants named 0-4. The first round would be 0 vs 1, 0 vs 2, 0 vs 3, 0 vs 4. Then round two would be 1 vs 2, 1 vs 3, 1 vs 3, 1 vs 0.   This continues until everyone competes against everyone else twice.

Suggested Methodology

You can solve this in any number of ways, and here’s a way you may take to approach this problem.

Make a generic circular linked list

Make a class player which has a name, number of wins, number of losses, and number of ties

Use the inherit properties of a circular linked list to schedule the tournament

Example Dialog:

Welcome to the Rock Paper Scissors Tournament!

We have 10 players. Let’s BEGIN!

0 uses Rock

1 uses Rock

TIE!

0 uses Rock

2 uses Paper

2 Wins!

0 uses Scissors

3 uses Paper

0 Wins!

0 uses Scissors

4 uses Scissors

TIE!

0 uses Scissors

5 uses Scissors

TIE!

0 uses Rock

6 uses Scissors

0 Wins!

0 uses Rock

7 uses Scissors

0 Wins!

0 uses Scissors

8 uses Paper

0 Wins!

0 uses Paper

9 uses Paper

TIE!

1 uses Rock

2 uses Rock

TIE!

1 uses Paper

3 uses Scissors

3 Wins!

1 uses Rock

4 uses Paper

4 Wins!

1 uses Paper

5 uses Rock

1 Wins!

1 uses Rock

6 uses Rock

TIE!

1 uses Scissors

7 uses Rock

7 Wins!

1 uses Paper

8 uses Paper

TIE!

1 uses Rock

9 uses Paper

9 Wins!

1 uses Scissors

0 uses Scissors

TIE!

2 uses Paper

3 uses Paper

TIE!

2 uses Rock

4 uses Paper

4 Wins!

2 uses Rock

5 uses Rock

TIE!

2 uses Paper

6 uses Paper

TIE!

2 uses Paper

7 uses Rock

2 Wins!

2 uses Rock

8 uses Paper

8 Wins!

2 uses Rock

9 uses Rock

TIE!

2 uses Rock

0 uses Scissors

2 Wins!

2 uses Paper

1 uses Scissors

1 Wins!

3 uses Rock

4 uses Paper

4 Wins!

3 uses Scissors

5 uses Scissors

TIE!

3 uses Scissors

6 uses Scissors

TIE!

3 uses Scissors

7 uses Paper

3 Wins!

3 uses Rock

8 uses Rock

TIE!

3 uses Rock

9 uses Paper

9 Wins!

3 uses Scissors

0 uses Paper

3 Wins!

3 uses Paper

1 uses Scissors

1 Wins!

3 uses Rock

2 uses Paper

2 Wins!

4 uses Rock

5 uses Paper

5 Wins!

4 uses Scissors

6 uses Paper

4 Wins!

4 uses Scissors

7 uses Scissors

TIE!

4 uses Rock

8 uses Paper

8 Wins!

4 uses Rock

9 uses Rock

TIE!

4 uses Scissors

0 uses Rock

0 Wins!

4 uses Paper

1 uses Paper

TIE!

4 uses Paper

2 uses Scissors

2 Wins!

4 uses Paper

3 uses Scissors

3 Wins!

5 uses Paper

6 uses Paper

TIE!

5 uses Scissors

7 uses Paper

5 Wins!

5 uses Scissors

8 uses Rock

8 Wins!

5 uses Rock

9 uses Scissors

5 Wins!

5 uses Scissors

0 uses Rock

0 Wins!

5 uses Rock

1 uses Rock

TIE!

5 uses Scissors

2 uses Paper

5 Wins!

5 uses Scissors

3 uses Rock

3 Wins!

5 uses Rock

4 uses Rock

TIE!

6 uses Scissors

7 uses Scissors

TIE!

6 uses Rock

8 uses Paper

8 Wins!

6 uses Rock

9 uses Paper

9 Wins!

6 uses Rock

0 uses Scissors

6 Wins!

6 uses Scissors

1 uses Paper

6 Wins!

6 uses Rock

2 uses Scissors

6 Wins!

6 uses Rock

3 uses Paper

3 Wins!

6 uses Scissors

4 uses Rock

4 Wins!

6 uses Paper

5 uses Paper

TIE!

7 uses Rock

8 uses Scissors

7 Wins!

7 uses Paper

9 uses Rock

7 Wins!

7 uses Rock

0 uses Scissors

7 Wins!

7 uses Scissors

1 uses Paper

7 Wins!

7 uses Rock

2 uses Paper

2 Wins!

7 uses Paper

3 uses Rock

7 Wins!

7 uses Scissors

4 uses Scissors

TIE!

7 uses Rock

5 uses Rock

TIE!

7 uses Paper

6 uses Rock

7 Wins!

8 uses Rock

9 uses Scissors

8 Wins!

8 uses Rock

0 uses Rock

TIE!

8 uses Paper

1 uses Rock

8 Wins!

8 uses Paper

2 uses Rock

8 Wins!

8 uses Paper

3 uses Rock

8 Wins!

8 uses Scissors

4 uses Rock

4 Wins!

8 uses Paper

5 uses Scissors

5 Wins!

8 uses Paper

6 uses Paper

TIE!

8 uses Paper

7 uses Rock

8 Wins!

9 uses Paper

0 uses Paper

TIE!

9 uses Paper

1 uses Paper

TIE!

9 uses Scissors

2 uses Paper

9 Wins!

9 uses Scissors

3 uses Scissors

TIE!

9 uses Scissors

4 uses Rock

4 Wins!

9 uses Rock

5 uses Scissors

9 Wins!

9 uses Paper

6 uses Scissors

6 Wins!

9 uses Paper

7 uses Paper

TIE!

9 uses Scissors

8 uses Paper

9 Wins!

The tournament is over here are the results!

Name 0 Wins 6 Ties 7 Losses 5

Name 1 Wins 3 Ties 8 Losses 7

Name 2 Wins 6 Ties 5 Losses 7

Name 3 Wins 6 Ties 5 Losses 7

Name 4 Wins 7 Ties 6 Losses 5

Name 5 Wins 5 Ties 8 Losses 5

Name 6 Wins 4 Ties 7 Losses 7

Name 7 Wins 7 Ties 5 Losses 6

Name 8 Wins 9 Ties 4 Losses 5

Name 9 Wins 6 Ties 7 Losses 5

Explanation / Answer

import java.util.Random;
import java.util.Scanner;
Public class RockPaperScissorsGame
{
public static void main(String[] args)
{
String computer;
String user;
Scanner keyboard = new Scanner(System.in);
do
{
computer = computerChoice();
user = userChoice(keyboard);
String output = determineWinner(computer, user);
System.out.println(output);
}
while (user.equalsIgnoreCase(computer));
keyboard.close();
}
public static String computerChoice()
{
Random rand = new Random();
int num = rand.nextInt(3) + 1;
return getChoice (num) ;
}
public static String getChoice (int number)
{
String choice;
switch (number)
{
case 1:
choice = "rock";
break;
case 2:
choice = "paper";
break;
case 3:
choice = "scissors";
break;
default:
choice = null;
}
return choice;
}
public static String userChoice(Scanner keyboard)
{
System.out.print("Enter 1 - rock, 2 - paper, or 3 - scissors: ");
int userChoice = keyboard.nextInt();
String play = getChoice (userChoice);
while (play == null)
{
System.out.print("Enter 1 - rock, 2 - paper, or 3 - scissors: ");
userChoice = keyboard.nextInt();
play = getChoice (userChoice);
}
return play;
}
public static String determineWinner (String computerChoice, String userChoice)
{
checkNotNull(computerChoice, "computer must have a choice");
checkNotNull(userChoice, "user must have a choice");
String output;
output = "The computer's choice was " + computerChoice + ". ";
output += "The user's choice was " + userChoice + ". ";
if (userChoice.equalsIgnoreCase("rock"))
{
if (computerChoice.equalsIgnoreCase("scissors"))
output += "Rock beats scissors. The user wins!";
else if (computerChoice.equalsIgnoreCase("paper"))
output += "Paper beats rock. The computer wins!";
else
output += "The game is tied! Play again...";
}
else if (userChoice.equalsIgnoreCase("paper"))
{
if (computerChoice.equalsIgnoreCase("scissors"))
output += "Scissors beats paper. The computer wins!";
else if (computerChoice.equalsIgnoreCase("rock"))
output += "Paper beats rock. The user wins!";
else
output += "The game is tied! Play again...";
}
else if (userChoice.equalsIgnoreCase("scissors"))
{
if (computerChoice.equalsIgnoreCase("rock"))
output += "Rock beats scissors. The computer wins!";
else if (computerChoice.equalsIgnoreCase("paper"))
output += "Scissors beats paper. The user wins!";
else
output += "The game is tied! Play again...";
}
return output;
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote