Перейти до вмісту
    Ruby / Гра Вгадай слово на Ruby

    Гра Вгадай слово на Ruby

    Оцініть цю публікацію!
    [Усього: 0 Середнє значення: 0]

    Cкрипт генерує список випадкових слів та показує їх користувачу, який повинен введенням вгадати слово. Це є простим вправою для вивчення введення та роботи зі строками в Ruby:

    class WordGame
      def initialize
        @words = %w[ruby python javascript programming code developer computer]
        @attempts = 3
      end
    
      def start_game
        puts 'Welcome to the Word Guessing Game!'
        puts 'Try to guess the hidden word.'
    
        random_word = @words.sample
        masked_word = '_' * random_word.length
    
        loop do
          puts "\nCurrent word: #{masked_word}"
          puts "Attempts left: #{@attempts}"
    
          print 'Enter a letter or the whole word: '
          guess = gets.chomp.downcase
    
          if guess.length == 1
            update_masked_word(random_word, masked_word, guess)
          else
            if guess == random_word
              puts 'Congratulations! You guessed the word!'
              break
            else
              puts 'Incorrect! Try again.'
            end
          end
    
          @attempts -= 1
    
          if masked_word == random_word
            puts "Congratulations! You guessed the word '#{random_word}'!"
            break
          elsif @attempts.zero?
            puts "Sorry, you've run out of attempts. The correct word was '#{random_word}'."
            break
          end
        end
      end
    
      private
    
      def update_masked_word(word, masked_word, guess)
        word.each_char.with_index do |char, index|
          masked_word[index] = guess if char == guess
        end
      end
    end
    
    WordGame.new.start_game
    

    Цей скрипт генерує випадкове слово зі списку та представляє його як рядок з підкреслень. Користувач має можливість вгадати букву чи ввести ціле слово. Гра триває до того часу, поки користувач не вгадає слово чи не використає всі спроби.

    Залишити відповідь

    Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *