我對Ruby很新,所以請給我任何建議,你可以提供。謝謝。 今天我幾乎完成了一個簡單的最後我問用戶是否想再次玩。我知道如何做If If語句和類似的東西,但不知道如何跳回到遊戲開始的代碼行。我做了一些研究,發現了一些叫做goto的東西,但發現它不應該被使用。無論如何,我可以去特定的代碼行,而不會搞砸一切? 感謝您的幫助。如何跳轉到特定的代碼行
的例子是:
print "Would you like to play again?"
puts "Yes or no"
again = gets.chomp!
again.capitalize!
if again == "Yes"
(Code to send back to line 9)
end
Ruby實際上並沒有'goto'聲明,而你真的不需要聲明,它立即讓你的代碼無法維護。你能舉出一個你想要做什麼的具體例子,這樣可以解釋Ruby解決問題的方式嗎? – tadman
大多數遊戲都是圍繞[*事件循環*](https://en.wikipedia.org/wiki/Event_loop)的概念構建的,其中由用戶或各種遊戲內定時器發起的操作均由其處理。每個事件都是單獨處理的,通常按順序處理,其中事件可能是按鈕按下或鼠標移動。沒有必要回到任何特定的代碼行,因爲當處理程序結束時,它只是循環回去,並通過設計做其他事情。 – tadman
嘗試將你的代碼放在'loop do .... end'循環中。這將繼續循環,直到遇到'break'或'break x'('x'是一個返回值)。有些人使用'while(true)... end',但我最喜歡'loop do'。有關詳細信息,請參見[Kernel#loop](http://ruby-doc.org/core-2.3.0/Kernel.html#method-i-loop),包括一個簡單示例。 –