##今流行りのズンドコ節プログラムをrubyで組んでみる。
「ズン」「ドコ」をランダムに出力して、
「ズン ズン ズン ズン ドコ」
が完成したら**「きよし」**を出力する例のアレ。
##そのまんまなのも何なので
「(きよし)の(ズン)(ドコ)節」の形式ならなんでもズンドコできるようにする。
##実装
universal_zundoko.rb
#実際にズンドコする処理
def zundoko(data)
count = 0
loop do
#ランダムにズンドコする
if(rand(2) == 1) then
count += 1
puts data[2] #ズン
else
puts data[3] #ドコ
#4連続以上ズンしていたらキヨシして終了
break if count >= 4
count = 0
end
end
puts "\" + data[1] + "/" #\キヨシ/
end
#ズンドコするタイトル取得
title = ARGV[0]
#キヨシ/ズン/ドコを抽出
expStr = /^(.{3,}?)の(.{2}?)(.{2}?)節$/
matched = expStr.match(title)
if matched.nil? || matched[1,3].any?{|e| e == ""} then
puts "これではズンドコできません"
else
#ズンドコする
zundoko(matched)
end
##実行結果
result
$ ruby universal_zundoko.rb きよしのズンドコ節
ドコ
ズン
ズン
ズン
ズン
ドコ
\きよし/
$ ruby universal_zundoko.rb たなかのドンチキ節
ドン
チキ
ドン
ドン
ドン
ドン
チキ
\たなか/
$ ruby universal_zundoko.rb kiyoshiのずんどこ武士
これではズンドコできません
五回ごとに区切った方がそれっぽいだろうか…