rubyでユニバーサルズンドコキヨシ

  • 6
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

今流行りのズンドコ節プログラムを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のずんどこ武士
これではズンドコできません

五回ごとに区切った方がそれっぽいだろうか…