[英]Saving data in a command-line game, no database [Ruby]
我正在用Ruby做一個簡單的命令行游戲,但是在沒有數據庫/ HTTP動態的情況下保存一些信息時遇到了麻煩。
例如,假設我必須做一個三明治(在游戲中)。 我將看到一系列可供選擇的成分,例如:
[1] Carrot
[2] Banana
[3] Cheese
[4] Tomato
我無法對數字和成分之間的直接對應關系進行硬編碼,因為在此之前,我被禁止隨意使用幾種成分(因此完整的成分數組要長兩個項目)。 而且我不想呈現一個編號為[1] [2] [4] [6]
因為它會引起混淆。
我現在正在做的是硬編碼字母和項目之間的直接對應關系,因此對於Banana
壓榨機B
,對於Cheese
壓榨機C
,等等。 但這並不理想,特別是因為這是整個游戲中使用的模式,在某些情況下,這對我和玩家來說都會非常不便。
那么,我有更好的方法嗎? 如何將輸入與隨機生成的列表項相關聯,以及如何將該信息保存下來以供日后使用?)
這是我解決的方法:
Mario Zannone的評論使我意識到我可以將數組元素的index
用作id
,而我一直在看整個東西,就好像它只是文本一樣。
因此,我想出了以下代碼來利用這一點:
(0...@ingredients.length).each do |i|
puts "[#{i+1}] #{@ingredients[i]}"
end
這樣,我現在有了以下元素和輸入之間的直接對應關系:
choice = gets.chomp.to_i - 1
@selected_ingredient = @ingredients[choice]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.