感想 とても難しかったです。もう少しできるようになりたいです。 プログラムの説明は、すべて#になっています。 実行結果 ゴロゴロ ピカッ!! まだ落ちないまだ落ちないまだ落ちない ドカーン!!自分から1020[m]に落雷:遠くに雷が落ちた まだ雷雲がありますか?(1:yes,0:no)? 0 kaminari.rb #!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- def color(code) if code == 0 then #赤 print"\e[31m" elsif code == 1 then #緑 print"\e[32m" elsif code == 2 then #青 print"\e[34m" elsif code == 3 then #黄 print"\e[33m" else #白 print"\e[37m" end end def kaminari() # 0秒後 , 1秒後 , 2秒後 , 3秒後 result = ["自分に雷が落ちた","お母さんの雷が落ちた","近くで雷が落ちた","遠くに雷が落ちた"] color(1) #文字を緑に設定 print"ゴロゴロ\n" sleep(3) #3秒休む color(3) #文字を黄に設定 print"ピカッ!!\n" #雷が落ちるまで"まだ落ちない"を1秒間隔で表示 sleep(2) #2秒休む srand second = rand(4) #0から3の乱数(雷が光ってから落ちるまでの秒数) j = second #秒数をjに代入 color(2) #文字を青に設定 while j>0 do print"まだ落ちない" sleep(2) #2秒休む j = j - 1 #1回ずつ減算 end position = second*340 #距離を計算する(距離 = 秒数 × 340[m]) color(0) #文字を赤に設定 printf("\nドカーン!!自分から%d[m]に落雷:%s\n",position,result[second]) color(4) #文字を白に設定 sleep(3) #3秒休む end def cls() print"\e[2J" #画面消去 printf("\e[%d;%dH",0,1) #カーソルを左上に移動 end #雷雲があるか問い合わせ def toiawase() color(4) #文字を白に設定 print"まだ雷雲がありますか?(1:yes,0:no)?\n" kumo = gets.chomp!.to_i end #メイン while true cls #画面消去、カーソルを左上に移動 kaminari #雷 #まだ雷雲があるか問い合わせ、0だったら終了 if toiawase == 0 then break #終了 end end