Рубин Петли с бабушкой - PullRequest
       24

Рубин Петли с бабушкой

8 голосов
/ 07 октября 2010

Хорошо, я пытаюсь написать рубиновый симулятор моей бабушки.Я не могу заставить цикл работать так, как мне хотелось бы.Я хочу, чтобы бабушка ответила

«О, ЭТО НАМ НАМ НАЗАД (случайный год) ...»

, когда вы отвечаете ей во всех заглавных буквах, но ятакже попросите ее ответить

«ЧТО ВЫ СКАЗИТЕ ????»

, когда вы не используете все заглавные буквы.Я могу заставить каждого работать по отдельности, но я не могу сделать непрерывный цикл бабушки с ее сумасшедшими реакциями.Вот код:

puts 'HELLO SONNY! WHAT\'S NEW IN THE WHO\'S IT WHAT\'S IT?'
response = gets.chomp

while response == response.upcase
  puts 'OH, THAT REMINDS ME OF BACK IN ' + (rand(50) + 1905).to_s + '...'
  response = gets.chomp
end

while response != response.upcase
  puts 'WHAT\'D YOU SAY????'
  response = gets.chomp
end

Есть идеи?

Ответы [ 2 ]

7 голосов
/ 07 октября 2010

Проблема в том, что после выхода из первого цикла while вы никогда не вернетесь к нему.Попробуйте что-то вроде этого:

while true
  response = gets.strip
  if response == response.upcase
     puts msg1
  else
     puts msg2
  end
end

Это будет продолжаться вечно, пока вы не решите убить виртуальную бабушку с помощью Ctrl-C.

0 голосов
/ 25 января 2014

Эта программа работает, хотя я нуб, так что это может быть не лучшим способом.Кроме того, моя математика более креативна, чем практична, другие парни намного лучше.:)

puts 'Talk to your grandma!'

while true
  say = gets.chomp

  if say == say.downcase
   puts 'WHAT DID YOU SAY? SPEAK UP!'

  else say == say.upcase
   puts "NO HONEY, NOT SINCE 19" + (rand(90) + 10).to_s 

  end

  break if say == 'bye'.upcase

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...