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

JAVA, please provie code and screenshot. Must match specs. I report spam etc...

ID: 667057 • Letter: J

Question

JAVA, please provie code and screenshot. Must match specs.

I report spam etc...

This runs through program, but doe not allow user input.

import java.util.*;

enum Roshambo{

   rock{

            public String toString()

            {return "rock";}

   },

   paper{

            public String toString()

            {return "paper";}

            },

   scissors{

            public String toString()

            {return "scissors";}

   }

}

_______________________________________

abstract class Player

{

   String name;

   Roshambo value;

   abstract Roshambo generateRoshambo();

   void setName(String name) //set method1

   {this.name=name;}

   void setRoshambo(Roshambo value) //set method2

   {this.value=value;}

   String getName() //get method1

   {return name;}

   Roshambo getRoshambo() //get method2

   {return value;}

}

_________________________________________

class Bart extends Player

{

   public Roshambo generateRoshambo()

   {

            super.name="Bart";

            return Roshambo.rock;

   }

}

_______________________________________

class Lisa extends Player

{

   public Roshambo generateRoshambo()

   {

            super.name="Lisa";

            Random r=new Random();

            int ch=r.nextInt(3);

            if(ch==0) return Roshambo.rock;

            else if(ch==1) return Roshambo.paper;

            else return Roshambo.scissors;

   }

}

___________________________________________

class Player1 extends Player

{

   char value;

   Player1(char value)

   {this.value=value;}

   public Roshambo generateRoshambo()

   {

   if(value=='r')

            return Roshambo.rock;

   else if(value=='s')

            return Roshambo.scissors;

   else

            return Roshambo.paper;

   }

}

_______________________________________________

class RoshamboApp

{

   public static void main(String args[])

   {

            char choice='y';

            char player;

            Scanner s=new Scanner(System.in);

            System.out.println("Welcome to the game of Roshambo");

            Bart b=new Bart(); //create 2-objects of Bart and lisa

            Lisa l=new Lisa();

            Player p=null;

            String name;

            System.out.println("Enter your name : ");

            name=s.next(); //input name

            System.out.println("Would you like to play Bart or Lisa?(B/L):");

            player=s.next().charAt(0); //playing neighbour choice

            if(player=='b') //either bart

            p=b;

            else if(player=='l') //or lisa

            p=l;

     

            while(choice!='n') //repeating loop

            {

                System.out.println("Rock, paper or scissors?(R/P/S)");

                        char ch=s.next().charAt(0);

                        Player1 p1=new Player1(ch);

                System.out.println(name+":"+p1.generateRoshambo());

                System.out.println(p.getName()+":"+p.generateRoshambo());

               

                if(p1.generateRoshambo()==p.generateRoshambo()) //checking condition for equality or which is bigger

                        System.out.println("Draw!");

                        else if(p1.generateRoshambo()==Roshambo.paper && p.generateRoshambo()==Roshambo.rock)

                        System.out.println(p1.getName()+"Wins");

                        else if(p1.generateRoshambo()==Roshambo.paper && p.generateRoshambo()==Roshambo.scissors)

                        System.out.println(p.getName()+"Wins!");

                        else if(p1.generateRoshambo()==Roshambo.scissors && p.generateRoshambo()==Roshambo.rock)

                        System.out.println(p.getName()+"Wins");

                System.out.println("Play again?(y/n):");

                choice=s.next().charAt(0); //input repeat choice

            }

   }

}

SPECS

Create the Roshambo (rock paper scissors) game

Console

Welcome to the game of Roshambo

Enter your name: Name

Would you like to play Bart or Lisa? (B/L): b

Rock, paper, or scissors? (R/P/S): r

Stani: rock

Bart: rock

Draw!

Play again? (y/n): y

Rock, paper, or scissors? (R/P/S): p

Stani: paper

Bart: rock

Stani wins!

Play again? (y/n): y

Rock, paper, or scissors? (R/P/S): s

Stani: scissors

Bart: rock

Bart wins!

Play again? (y/n): n

Operation

The application prompts the player to enter a name and select an opponent.

The application prompts the player to select rock, paper, or scissors. Then, the application displays the player’s choice, the opponent’s choice, and the result of the match.

The application continues until the user doesn’t want to play anymore.

If the user makes an invalid selection, the application should display an appropriate error message and prompt the user again until the user makes a valid selection.

Specifications

Create an enumeration named Roshambo that stores three values: rock, paper, and scissors. This enumeration should include a toString method that can convert the selected value to a string.

Create an abstract class named Player that stores a name and a Roshambo value. This class should include an abstract method named generateRoshambo that allows an inheriting class to generate and return a Roshambo value. It should also include get and set methods for the name and Roshambo value.

Explanation / Answer

package com.week1;

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

enum Roshambo {
   rock {
       @Override
       public String toString ()
       {
           return "rock";
       }
   },
   paper {
       @Override
       public String toString ()
       {
           return "paper";
       }
   },
   scissors {
       @Override
       public String toString ()
       {
           return "scissors";
       }
   }
}

abstract class Player {
   String name;
   Roshambo value;

   abstract Roshambo generateRoshambo ();

   void setName ( String name ) // set method1
   {
       this.name = name;
   }

   void setRoshambo ( Roshambo value ) // set method2
   {
       this.value = value;
   }

   String getName () // get method1
   {
       return name;
   }

   Roshambo getRoshambo () // get method2
   {
       return value;
   }
}

class Bart extends Player {
   Bart ()
   {
       this.name = "Bart";
   }

   @Override
   public Roshambo generateRoshambo ()
   {
       Random r = new Random();
       int ch = r.nextInt( 3 );
       if ( ch == 0 )
       {
           value = Roshambo.rock;
           return Roshambo.rock;
       }
       else if ( ch == 1 )
       {
           value = Roshambo.paper;
           return Roshambo.paper;
       }
       else
       {
           value = Roshambo.scissors;
           return Roshambo.scissors;
       }
   }
}

class Lisa extends Player {
   Lisa ()
   {
       this.name = "Lisa";
   }

   @Override
   public Roshambo generateRoshambo ()
   {
       Random r = new Random();
       int ch = r.nextInt( 3 );
       if ( ch == 0 )
       {
           value = Roshambo.rock;
           return Roshambo.rock;
       }
       else if ( ch == 1 )
       {
           value = Roshambo.paper;
           return Roshambo.paper;
       }
       else
       {
           value = Roshambo.scissors;
           return Roshambo.scissors;
       }
   }
}

public class RoshamboApp {
   public static void main ( String args[] )
   {
       Scanner input = new Scanner( System.in );
       System.out.println( "Welcome to the game of Roshambo" );
       Player bart = new Bart(); // create 2-objects of Bart and lisa
       Player lisa = new Lisa();
       String name, playAgain, opponent, optionChoosed, opponentOption = "";
       System.out.println( "Enter your name : " );
       name = input.nextLine(); // input name
       do
       {
           do
           {
               System.out.println( "Enter opponent's name(Bart/Lisa)" );
               opponent = input.nextLine();
           } while ( !opponent.equalsIgnoreCase( bart.getName() ) && !opponent.equalsIgnoreCase( lisa.getName() ) );
           System.out.println( "enter rock/paper/scissors" );
           do
           {
               optionChoosed = input.nextLine();
           } while ( !optionChoosed.equalsIgnoreCase( Roshambo.rock.toString() )
                   && !optionChoosed.equalsIgnoreCase( Roshambo.paper.toString() )
                   && !optionChoosed.equalsIgnoreCase( Roshambo.scissors.toString() ) );
           System.out.println( name + ":" + optionChoosed );
           if ( opponent.equalsIgnoreCase( bart.getName() ) )
           {
               opponent = bart.getName();
               bart.generateRoshambo();
               System.out.println( bart.getName() + ":" + (opponentOption = bart.getRoshambo().toString()) );
           }
           else
           {
               opponent = lisa.getName();
               lisa.generateRoshambo();
               System.out.println( lisa.getName() + ":" + (opponentOption = lisa.getRoshambo().toString()) );
           }
           if ( optionChoosed.equalsIgnoreCase( opponentOption ) )
               System.out.println( "Draw" );
           else if ( optionChoosed.equalsIgnoreCase( Roshambo.rock.toString() ) )
           {
               if ( opponentOption.equalsIgnoreCase( Roshambo.scissors.toString() ) )
                   System.out.println( name + ":Wins" );
               if ( opponentOption.equalsIgnoreCase( Roshambo.paper.toString() ) )
                   System.out.println( opponent + ":Wins" );
           }
           else if ( optionChoosed.equalsIgnoreCase( Roshambo.scissors.toString() ) )
           {
               if ( opponentOption.equalsIgnoreCase( Roshambo.rock.toString() ) )
                   System.out.println( opponent + ":Wins" );
               if ( opponentOption.equalsIgnoreCase( Roshambo.paper.toString() ) )
                   System.out.println( name + ":Wins" );
           }
           else if ( optionChoosed.equalsIgnoreCase( Roshambo.paper.toString() ) )
           {
               if ( opponentOption.equalsIgnoreCase( Roshambo.scissors.toString() ) )
                   System.out.println( opponent + ":Wins" );
               if ( opponentOption.equalsIgnoreCase( Roshambo.rock.toString() ) )
                   System.out.println( name + ":Wins" );
           }
           System.out.println( "Do you want to play again(yes/no)" );
           playAgain = input.nextLine();
       } while ( playAgain.equalsIgnoreCase( "yes" ) );
       input.close();

   }
}