比賽,我試圖讓這個程序運行:,石頭,剪刀紅寶石
cpucount = 0
playercount = 0
tiecount = 0
playerchoice =
while playerchoice != "n"
puts "Chose your Weapon. Paper (0), Rock (1), Scissors (2)"
player1 = 0 #gets
cpuplayer = 2#rand(3)
puts player1
puts cpuplayer
if player1 == 0 and cpuplayer == 1
puts "You Win"
playercount +=1
elsif player1 == 1 and cpuplayer == 2
puts "You Win!"
playercount +=1
elsif player1 == 2 and cpuplayer == 0
puts "You Win!"
playercount +=1
elsif player1 == cpuplayer
puts "You tied!"
tiecount +=1
else
puts "You lose"
cpucount +=1
end
puts cpucount
puts playercount
puts tiecount
puts "Do you want to play again? y/n?"
playerchoice = gets
puts playerchoice
end
但也有一些問題。
首先,無論我選擇"y"
繼續另一輪還是"n"
退出,它仍然運行另一輪。
其次,當我手動輸入player1和cpuplayer的值時,邏輯是好的,但是當我使用rand方法和用戶輸入時,程序會採用這些方法,然後邏輯不起作用。
任何幫助,將不勝感激。
當處理多個條件時,請嘗試像case([player1,cpuplayer])',然後像'when [0,1]'一樣分支出來處理這些子句。這比一堆龐大的if語句要容易得多。還要小心。 'playerchoice = nil'是以前需要的,否則它會賦予'while'的結果。 – tadman
我在研究這個時利用了你所解釋的東西,看了一段示例代碼。我將在未來更多地玩這個遊戲,但是現在我知道該怎麼做,如果 - 那麼,但是謝謝你的反饋! – R2DeeTard
有一些答案[你可能會覺得有趣的[這個SO問題](http://stackoverflow.com/questions/32105234/drying-up-rock-paper-scissors)。 –