0
我寫了一個hangman遊戲的實現。 (它在終端上播放)。遊戲工作正常,但我通常有一些問題,讓我的程序打開一個字典txt文件從該單詞將生成的位置。下面是我用於生成字我的寶石看不到字典文本文件,我找不到路徑
def word_generator(min, max)
words = File.open("../dictionary.txt"), "r").readlines.map!(&:chomp)
level_words = words.select { |i| i.length >= min && i.length <= max }
random_index = rand(level_words.length)
@game_word = level_words[random_index]
end
這種方法的代碼工作正常,當我玩遊戲,我的遊戲和字典文本文件是從我的ruby文件只是一個目錄級別的路程。這裏是問題: 當我把項目打包成一個寶石,並安裝它。它會拋出這個錯誤in initialize': No such file or directory @ rb_sysopen /Users/andeladev/Desktop/paitin_hangman/bin/dictionary.txt (Errno::ENOENT)
。當我將文本文件放入終端的當前工作目錄時,它只能正常運行。
如何在傳遞給File.open
的參數中編寫路徑,它將告訴程序在gem路徑而不是當前工作目錄中查找文件。
我試過的代碼,它仍然沒有看到字典文件,但它給了我一個線索在哪裏得到它,所以我增加了一個''../就是這樣。我使用的代碼是'file_name = File.join(File.dirname(File.expand_path(__ FILE__)),'../../ dictionary.txt')'。非常感謝 –