Question: Objective: Write one interface and three classes which will make a rock paper scissors game. First download the driver. The interface named RPSPlayerInterface will have

Objective:

Write one interface and three classes which will make a rock paper scissors game. First download the driver.

The interface named RPSPlayerInterface will have the following methods

  • public int getPoints()
  • public String getGesture()
  • public void setPoints(int aPoints)
  • public void setGesture(String aGesture)
  • public void chooseGesture()

The next class RPSPlayer implements this interface

  • It has an instance variable gesture which is a string that corresponds to rock, paper, or scissors
  • It has another instance variable points that keeps track of how many times the player has won
  • Create only a default constructor that sets the gesture to none and points to 0
  • Create the accessors and mutators for the instance varaibles
    • The mutator for setGesture should make sure it is either rock, paper, or scissors. If it is not then tell the user that was a wrong choice and set gesture to none
  • Write the chooseGesture method
    • In this case just set the instance variable gesture to none

Next write the class RPSHumanPlayer which inherits from RPSPlayer

  • It has an instance variable keyboard which is of type Scanner
    • Make sure to import java.util.Scanner
  • Create a default constructor
    • Calls the parents default constructor
    • Sets up the keyboard to System.in
  • Override the method chooseGesture
    • Call the parents setGesture method and pass the string gotten from the Scanner keyboard.
    • You do not have to prompt the user.

Next write the class RPSComputerPlayer which also inherits from RPSPlayer

  • It has an instance variable rand which is of type Random
    • Make sure to import java.util.Random
  • Create a default constructor
    • Calls the parents default constructor
    • Constructs the rand variable
  • Override the method chooseGesture
    • Using the random variable it should randomly select a number
    • Correspond the number to a string which will either rock, paper, or scissors
      • For instance if rand equals 0 then it is a rock, else if 1 then paper, else if 2 then scissors
    • Use the parents setGesture to then assign the randomly picked gesture

Lab Report

  1. Draw the UML Class diagram for this project
  2. Is it possible to implement more than one interface?

Example Dialog:

Welcome to the rock paper scissors game!

Enter either "rock", "paper", or "scissors" to compete

rock

You picked rock

The computer picked paper

You lose!

You have 0 points

The computer has 1 points

Press enter to continue or enter "quit" to quit

Enter either "rock", "paper", or "scissors" to compete

paper

You picked paper

The computer picked scissors

You lose!

You have 0 points

The computer has 2 points

Press enter to continue or enter "quit" to quit

Enter either "rock", "paper", or "scissors" to compete

scissors

You picked scissors

The computer picked paper

You win!

You have 1 points

The computer has 2 points

Press enter to continue or enter "quit" to quit

Enter either "rock", "paper", or "scissors" to compete

dynamite

Incorrect choice

You picked none

The computer picked paper

You lose!

You have 1 points

The computer has 3 points

Press enter to continue or enter "quit" to quit

quit

Good bye

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!