可擴展的解決方案只需通過遊戲的變體去:Rock-Paper-Scissor-Lizard-Spock爲石頭紙剪刀
我已經寫了傳統RPS問題Java代碼,但是當我試圖延長我的代碼爲遊戲的新版本(RPSLS)..我覺得我的代碼是可怕不好。這裏是一個片段:
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/case。我需要一些幫助重新設計我的代碼實現了2個目標:
進一步修改按R-P-C-L-S的問題。
支持超過2名玩家。
我不需要代碼,只是一些指導方針應該有所幫助。
謝謝!
編輯:似乎我錯了,認爲這個遊戲可以由2個以上的玩家玩。對於這個錯誤我很抱歉,請忽略第二個要求。
我非常感興趣的是去除if-else塊和硬編碼數據... – SlowAndSteady 2012-03-04 07:17:43
謝謝大家 - 太多好的答案! – SlowAndSteady 2012-03-04 10:58:04
繪製決策表。然後執行決策表。 – 2012-07-07 21:06:15