Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 12.04.2018, 18:29   #1
menamhatep
Новичок
 
Регистрация: 12.04.2018
Адрес: Киев
Сообщений: 3
Репутация: 10
По умолчанию 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 в 18:53. Причина: более точное указание заголовка
menamhatep вне форума   Ответить с цитированием
Старый 12.04.2018, 21:12   #2
Stanislav
Квадрокоптерист
Профессионал
 
Регистрация: 29.09.2007
Сообщений: 1,768
Репутация: 513
По умолчанию

Попробуй это

* я проверил 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 в 21:16.
Stanislav вне форума   Ответить с цитированием
Старый 13.04.2018, 11:05   #3
menamhatep
Новичок
 
Регистрация: 12.04.2018
Адрес: Киев
Сообщений: 3
Репутация: 10
По умолчанию

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

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

Не за что

Цитата:
У меня вопрос по поводу переменной 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 в 12:20.
Stanislav вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработчик Ruby/ Ruby on Rails (Москва) muravitsky Работа на постоянной основе - Вакансии 0 23.05.2017 19:00
Java, угадывание числа СофияРоманова Общие вопросы по Java, Java SE, Kotlin 1 13.04.2017 16:26
Ruby, Ruby on Rails разработчик, Спб Ludmila.K Работа на постоянной основе - Вакансии 0 14.07.2009 12:29
Создание игры на угадывание чисел. Semen064 Помощь студентам 7 15.06.2009 17:09


01:12.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru