Homework: Rock Paper Scissors game.
I’ve created an enumeration:
enum Gesture{ROCK,PAPER,SCISSORS};
from which I want to compare values to decide who wins–computer or human. Setting the values works just fine, and the comparisons work properly (paper covers rock, rock crushes scissors, scissors cuts paper). However, I cannot get my tie to work. The user is declared as the winner any time there’s a tie.
Ahhh…crap…this will clarify: userPick is a String with values rock, paper, or scissors. I’m unable to use == to compare userPick to computerPick, which, as you can see below, is cast as type Gesture from my enum.
if(computer == 1)
computerPick = Gesture.ROCK;
else
if(computer == 2)
computerPick = Gesture.PAPER;
else
computerPick = Gesture.SCISSORS;
if(userPick.equals(computerPick))
{
msg = "tie";
++tieGames;
}
etc....
I am guessing that there’s an issue with rock not being equal to ROCK, or the String userPick not being able to match Gesture computerPick because the latter isn’t a String. However, I’m not able to find an example of a similar circumstance in my textbook or Oracle’s Java Tutorials, so I’m not sure how to correct the problem…
Any hints?
I’m gathering from your question that
userPickis aStringvalue. You can compare it like this:As an aside, if you are guaranteed that
computeris always one of the values1,2, or3(and nothing else), you can convert it to aGestureenum with: