Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Ruby
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2018, 17:29   #1
menamhatep
Новичок
Джуниор
 
Регистрация: 12.04.2018
Сообщений: 3
По умолчанию Ruby прошу помощи в решении задачи - угадывание числа

Приветствую, коллеги программисты!
Начал изучать язык Ruby. Изучаю по книге - Head First Ruby(Jay McGavren).
В начале книге есть задача. Написал в онлайн компиляторе(repl.it). Выдает ошибки непонятно почему. Буду благодарен за помощь.

Ниже текст программы:

Код:
# Get My Number Game 
# Written by: you! 
 puts "Welcome to 'Get My Number!'" 
# Получение имени игрока и вывод приветствия. 
 print "What's your name? " 
 input = gets 
 name = input.chomp 
 puts "Welcome, #{name}!" 
# Сохранение случайного числа. 
  puts "I've got a random number between 1 and 100." 
  puts "Can you guess it?" 
  target = rand(100) + 1 
# Отслеживание количества попыток. 
  num_guesses = 0 
# Признак продолжения игры. 
guessed_it=false # компилятор матерится на эту переменную
until num_guesses == 10 || guessed_it 
puts "You've got #{10 — num_guesses} guesses left."   
   print "Make a guess: "   
   guess = gets.to_i 
   num_guesses += 1 
# Сравнение введенного числа с загаданным 
# и вывод соответствующего сообщения.   
 if guess < target     
   puts "Oops. Your guess was LOW."   
 elsif guess > target     
   puts "Oops. Your guess was HIGH."   
 elsif guess == target     
   puts "Good job, #{name}!"     
   puts "You guessed my number in #{num_guesses} guesses!"     guessed_it = true   
   end 
 end 
# Если попыток не осталось, сообщить загаданное число. 
  unless guessed_it   
  puts "Sorry. You didn't get my number. (It was #{target}.)" end
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось menamhatep; 12.04.2018 в 17:53. Причина: более точное указание заголовка
menamhatep вне форума Ответить с цитированием
Старый 12.04.2018, 20:12   #2
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Попробуй это

* я проверил https://repl.it/repls/EvilGregariousEfficiency работает

Код:
    x = rand(10)
    puts "Угадайте число"
    puts x # Это чит для тестирования :-)

    number1 = gets.to_i

    if x == number1
    puts "Да, это #{x}!"

        else
        puts "Ещё раз!"
        number2 = gets.to_i

            if x == number2
            puts "Конечно, #{x}!"

                else
                puts "Упс"
                number3 = gets.to_i

                    if x == number3
                    puts "Вот и #{x}"

                    else
                    puts "Неудачник, я загадал #{x}"

                    end

            end

    end
Либо он лайн среда мозги делает либо пример в книжке с ошибкой там это часто бывает.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..

Последний раз редактировалось Stanislav; 12.04.2018 в 20:16.
Stanislav вне форума Ответить с цитированием
Старый 13.04.2018, 10:05   #3
menamhatep
Новичок
Джуниор
 
Регистрация: 12.04.2018
Сообщений: 3
По умолчанию

Спасибо большое)))) А код из книжки никак изменить не нужно?
У меня вопрос по поводу переменной guessed_it. Тупо влепили его........
menamhatep вне форума Ответить с цитированием
Старый 13.04.2018, 11:03   #4
menamhatep
Новичок
Джуниор
 
Регистрация: 12.04.2018
Сообщений: 3
По умолчанию

Код скопировал тупо из книжки. Когда ввел вручную, все заработало)))
Спасибо большое за помощь)))) Второй вариант решения, тоже пригодится)))
menamhatep вне форума Ответить с цитированием
Старый 13.04.2018, 11:18   #5
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Не за что

Цитата:
У меня вопрос по поводу переменной guessed_it. Тупо влепили его........
почему просто влепили? условие видите?
Код:
guessed_it=false # компилятор матерится на эту переменную
until num_guesses == 10 || guessed_it
Код:
puts "You guessed my number in #{num_guesses} guesses!"     guessed_it = true
Я часть той силы, что вечно хочет зла, но вечно совершает благо..

Последний раз редактировалось Stanislav; 13.04.2018 в 11:20.
Stanislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java, угадывание числа СофияРоманова Общие вопросы по Java, Java SE, Kotlin 1 13.04.2017 15:26
Создание игры на угадывание чисел. Semen064 Помощь студентам 7 15.06.2009 17:09