8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

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

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?