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();
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.