Starting from:
$30

$24

Programming Project #1 Solution

Objectives

• To apply knowledge of the Comparable interface to a problem

• To understand and override the toString and equals methods







Instructions

For this assignment, you will create a GamePiece class, to be used in a variation of the classic “Rock, Paper, Scissors” game. This variation is called “Rock, Paper, Scissors, Lizard, Spock”. A description about how each piece fairs against others is later in this document.










The GamePiece class will contain the following fields:




• classification

o The classification of the game piece

o Valid values are based on an enumerated type, Piece:

▪ Rock

▪ Paper

▪ Scissors

▪ Lizard

▪ Spock




• name

o The String value of the name, corresponding to the enumerated type

o “Rock”, “Paper”, “Scissors”, “Lizard”, or “Spock” are the valid values.




• playerName

o The name of the person playing (of type String)

o Can be any name under 20 characters long




The class will contain the following methods:

• GamePiece( )

o Constructor – initializes the fields to their default values

▪ Default classification is set to Rock

▪ Default name is set to “Rock”

• GamePiece (Piece classification, String name, String playerName)

o Constructor – initialize the fields to the values passed in by the client

• Getter and setter methods for each of the field names

• toString( )

o overridden from the Object class

o This method should return a string containing a reference to the value in the following, depending on the internal Piece value:

▪ Rock: “I’m hard and have sharp edges.”

▪ Paper: “I’m made of trees and can cover a rock easily.. and disprove Spock!”

▪ Scissors: “I’m extra sharp to cut right through paper… and lizards!”

▪ Lizard: “Hsssss.”

▪ Spock: “It is only logical that you do your CIS 2353 homework.”

• equals( )

o overridden from the Object class

o A GamePiece is “equal” to another GamePiece if their classifications match

• compareTo(GamePiece otherPiece)

o implemented from the interface Comparable

o Specifically, Comparable<GamePiece should be used for the interface

o The method returns the following:

▪ -1 is the current game piece object’s classification is less than otherPiece’s

classification

▪ 0 if the game pieces have the same classification

▪ 1 if the current game piece object’s classification is greater than otherPiece’s

classification




Winning/Losing







Piece A Piece B Phrase to denote winner Who wins?
Rock Paper Paper covers rock Paper
Rock Scissors Rock crushes scissors Rock
Rock Lizard Rock crushes lizard Rock
Rock Spock Spock vaporizes rock Spock
Paper Scissors Scissors cuts paper Scissors
Paper Lizard Lizard eats paper Lizard
Paper Spock Paper disproves Spock Paper
Scissors Lizard Scissors decapitates lizard Scissors
Scissors Spock Spock smashes scissors Spock
Spock Lizard Lizard poisons Spock Lizard
Obviously, if the two pieces are the same, it’s a tie!







Deliverables

Turn in a zipped up folder, containing the Java file(s) required for this project. This includes all relevant classes

that are created, as well as the client used to test the class(es) – i.e., the class containing the main method. Upload them to D2L under Dropbox, to the appropriate assignment directory.

More products