簡體   English   中英

在沒有數據庫的命令行游戲中保存數據[Ruby]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM