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

JAVA JAVA JAVA }}}}PLEASE INCLUDE COMMENTS{{{{{{{ Objective: compose a program w

ID: 3663510 • Letter: J

Question

JAVA JAVA JAVA

}}}}PLEASE INCLUDE COMMENTS{{{{{{{

Objective:

compose a program which simulates a scissors, paper, rock double round robin tournament using a circular linked list. Players in the tournament are controlled by the computer, and they randomly choose scissors, paper or rock 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

// Player Class
class Player {
  
   int name;
   int no_of_wins;
   int no_of_losses;
   int no_of_ties;
   Player next;
  
   Player(int name) {
       this.name = name;
   }

}

// Linked List of No of Players
class CircularLL {
  
   Player head;
  
   public CircularLL(int no_of_players) {
       /* creating link list */
       int i = 0;
       Player current = head;
       for(i = 0; i < no_of_players; i++) {
           if(head == null) {
               head = new Player(i);
               current = head;
           }else{
               current.next = new Player(i);
               current = current.next;
           }
       }
       current.next = head;
   }
   Player getNext(Player p) {
       return p.next;
   }
  
}

//Game.java

import java.util.Random;
import java.util.Scanner;

public class Game {
  
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       Random generator = new Random();
       System.out.println("Enter no of players: ");
       int no_of_players = sc.nextInt();
      
       String personPlay=""; //User's play -- "R", "P", or "S"
        String otherPlay = ""; //Other's play -- "R", "P", or "S"
        int personInt; //Randomly generated number used to determine computer's play
        int otherIntInt;
        String response;
      
      
       CircularLL list = new CircularLL(no_of_players);
       int i =0;
       Player start = list.head;
       Player current = null;
      
      
       System.out.println("Welcome to the Rock Paper Scissors Tournament!");
       System.out.println("We have "+no_of_players+" players. Let’s BEGIN!");
      
       while(i < no_of_players) {
           current = list.getNext(start);
           while(current != start) {
              
               //Generate computer's play (0,1,2)
               personInt = generator.nextInt(3)+1;
              
                //Translate computer's randomly generated play to
                //string using if //statements
                if (personInt == 1) {
                   personPlay = "R";
                   System.out.println(start.name + " uses Rock");
                }
                else if (personInt == 2) {
                   personPlay = "P";
                   System.out.println(start.name + " uses Paper");
                }
                else if (personInt == 3) {
                   personPlay = "S";
                   System.out.println(start.name + " uses Scissors");
                }
              
              
              //Generate computer's play (0,1,2)
               otherIntInt = generator.nextInt(3)+1;
              
                //Translate computer's randomly generated play to
                //string using if //statements
                if (otherIntInt == 1) {
                   otherPlay = "R";
                   System.out.println(current.name + " uses Rock");
                }
                else if (otherIntInt == 2) {
                   otherPlay = "P";
                   System.out.println(current.name + " uses Paper");
                }
                else if (otherIntInt == 3) {
                   otherPlay = "S";
                   System.out.println(current.name + " uses Scissors");
                }


                if (otherPlay.equals(personPlay)) {
                   start.no_of_ties++;
                   current.no_of_ties++;
                   System.out.println("TIE!");
                }
                else if (otherPlay.equals("R")) {
                   if (personPlay.equals("S")){
                       current.no_of_wins++;
                       start.no_of_losses++;
                       System.out.println(current.name+" Wins!");
                   }else if (personPlay.equals("P")) {
                       start.no_of_wins++;
                       current.no_of_losses++;
                       System.out.println(start.name+" Wins!");
                   }
                }
                else if (otherPlay.equals("P")) {
                   if (personPlay.equals("S")) {
                       start.no_of_wins++;
                       current.no_of_losses++;
                       System.out.println(start.name+" Wins!");
                   }else if (personPlay.equals("R")) {
                       current.no_of_wins++;
                       start.no_of_losses++;
                       System.out.println(current.name+" Wins!");
                   }
                }
                else if (otherPlay.equals("S")) {
                     if (personPlay.equals("P")) {
                       current.no_of_wins++;
                           start.no_of_losses++;
                           System.out.println(current.name+" Wins!");
                     }else if (personPlay.equals("R")) {
                       start.no_of_wins++;
                           current.no_of_losses++;
                           System.out.println(start.name+" Wins!");
                     }
                }
              
                current = current.next; // playing with next player
           }
          
           i++;
           start = start.next;
       }
      
       System.out.println("The tournament is over here are the results!");
       // Traversing
       start = list.head;
       i = 0;
       while( i < no_of_players) {
           System.out.println("Name "+start.name+" Wins "+start.no_of_wins+
                   " Ties "+start.no_of_ties+" Losses "+start.no_of_losses);
           start = start.next;
           i++;
       }
      
   }

}