【发布时间】:2012-03-04 07:06:55
【问题描述】:
刚刚体验了游戏的一个变种:Rock-Paper-Scissor-Lizard-Spock
我已经为传统的 R-P-S 问题编写了 Java 代码,但是当我尝试为新版本的游戏 (R-P-S-L-S) 扩展我的代码时......我觉得我的代码非常很糟糕。这是一个 sn-p :
if (player1.equals("ROCK") &&
player2.equals("SCISSORS")) {
winner = 1;
}
// Paper covers rock...
else if (player1.equals("PAPER") &&
player2.equals("ROCK")) {
winner = 1;
}
// Scissors cut paper...
else if (player1.equals("SCISSORS") &&
player2.equals("PAPER")) {
winner = 1;
}
else {
winner = 2;
}
我意识到对于新版本以及超过 2 个玩家,代码无法轻松扩展。这主要是因为多个 if/else 或 switch/cases。我需要一些帮助重新设计我的代码以实现这两个目标:
-
根据 R-P-C-L-S 问题进一步修改。
-
支持超过 2 名玩家。
我不需要代码,只是一些指南应该会有所帮助。
谢谢!!
编辑:我认为这个游戏可以由超过 2 名玩家玩似乎是错误的。我很抱歉这个错误,请忽略第二个要求。
【问题讨论】:
-
我对删除 if-else 块和硬编码数据非常感兴趣...
-
谢谢大家 - 好答案太多了!
-
绘制决策表。然后实现决策表。