読者です 読者をやめる 読者になる 読者になる

流れ制御 >練習問題3

http://d.hatena.ne.jp/tomomii+programming/20100622/p2

この問題は複数のテーマを同時に扱っていますね。こういうときは例えば以下のように要素を分解して、少しずつ攻めていくと良いと思います。
・おばあちゃんはあなたの声を聞いて返事をする
・あなたがBYEというまでおばあちゃんとの会話は終了しない
・あなたの声がすべて大文字でタイプされていないと「は!??もっと大きな声で話しておくれ、お嬢さん」と返事をする
・すべて大文字でタイプされていれば「いやー1938年以来ないねー」と返事をする
・年の部分は1930-1950のランダムな数字にする

ありがとうございます。たしかに分解要素を書き出してもらったら出来そうな気がしました。やってみましょ。
出来そうな気がしたのはまさに気のせいで、日本語分解→プログラミング言語翻訳作業に随分時間を要してしまいました。実行しては直し実行しては直しの繰り返し、修正作業無限ループでへこむ。
なんとか上述の条件を満たすプログラミングコードはこちらでいけるのではないかと思いますが同じコードが何度か出現していて冗長感が否めない(修正するとターミナル上で"ねえねえ"が無限ループしたのでやめた)。難しい。

puts 'こんにちは'
puts 'は!!?もっと大きな声で話しておくれ、お嬢さん'
input = gets.chomp

until input == input.upcase
  puts 'は!?もっと大きな声で話しておくれ、お嬢さん'
  input = gets.chomp  
  end
  puts 'いやー' + (1930 + rand(20)).to_s + '年以来ないねー'
 
input2 =gets.chomp
puts input2
until input2 =='BYE'
  puts 'ねえねえ'
  input2 = gets.chomp
  end
  puts 'さようなら、またね'
moomin:ProgrammingRuby tomomi$ ruby variable.rb
こんにちは
は!!?もっと大きな声で話しておくれ、お嬢さん
hello
は!?もっと大きな声で話しておくれ、お嬢さん
Hello
は!?もっと大きな声で話しておくれ、お嬢さん
HELLO
いやー1932年以来ないねー
ほう
ほう
ねえねえ
そうなの?
ねえねえ
なるほど!
ねえねえ
VYE
ねえねえ
BYE
さようなら、またね

時間かかり過ぎ。センスないんだろか。