感想
とても難しかったです。もう少しできるようになりたいです。
プログラムの説明は、すべて#になっています。
実行結果
ゴロゴロ
ピカッ!!
まだ落ちないまだ落ちないまだ落ちない
ドカーン!!自分から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