Как заменить буквы на строки?(Рубин) - PullRequest
0 голосов
/ 08 июня 2019

Я пытаюсь построить игру палача, и мне нужно «подвергнуть цензуре» случайное слово с помощью строк, чтобы, например, слово «рубин» отображалось в виде четырех строк: _ _ _ _

Проблема в том, что мой метод заменяет слово на две дополнительные строки .

Вот мой метод:

class Game
    attr_reader :the_word

    def initialize
        @the_word = random_word
        @player_input = Array.new
        @attempts_left = 10
    end

    def random_word
        @the_word = File.readlines("../5desk.txt").sample
    end

    def hide_the_word
        @hidden_word = @the_word.split("")
        @hidden_word.each {|letter| letter.replace("_")}
        puts "Can you guess what this word is? #{@hidden_word.join()}"
        puts @the_word #delete this
    end
end

Если случайное слово "ruby", я бы хотел, чтобы игра заменила слово четырьмя строками, но оно всегда показывает две дополнительные строки (с каждым случайным словом).

Любая помощь очень ценится!

1 Ответ

1 голос
/ 08 июня 2019

Ваше слово из файла может содержать пробелы.Вы можете удалить их, используя метод strip ().

@the_word = File.readlines("../5desk.txt").sample.strip()

Но, как упоминал @ggorien, более простой способ добиться этого:

@hidden_word = "_" * @the_word.size 

и изменить путы на

puts "Can you guess what this word is? #{@hidden_word}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...