作业: 石头剪刀布游戏。
我创建了一个枚举:
enum Gesture{ROCK,PAPER,SCISSORS};
我想比较值以决定谁赢——计算机还是人类。设定值完全没有问题,比较也能正常进行(布包石头,石头压剪刀,剪刀剪布)。然而,我无法让平局起作用。无论何时出现平局,用户都被宣布为赢家。
啊啊啊...这会澄清一些事情:userPick
是一个带有 rock
、paper
或 scissors
值的 String
。我无法使用 ==
来比较 userPick
和下面你可以看到被转换为类型 Gesture
的 computerPick
枚举。
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....
我猜测问题出在rock
和ROCK
不相等,或者String userPick
无法与Gesture computerPick
匹配,因为后者不是String
。然而,在我的教科书或Oracle的Java教程中找不到类似情况的示例,所以我不确定如何解决这个问题...
有什么提示吗?
Gesture.valueOf([你的字符串])
。如果我没记错的话,该函数是大小写敏感的。但我可能记错了。 - K Mehta.toString()
方法将枚举转换为字符串,然后判断Gesture.ROCK.toString().equals("ROCK")
不就可以了吗? - Badri Paudel