1. Qiita
  2. 投稿
  3. crystal

[Crystal] ズンドコキヨシCR

  • 5
    いいね
  • 0
    コメント

何やら流行ってるっぽいので,Crystal でも書いてみたけれど,Ruby に食べさせたら普通に動いた。
Crystal ならでは,って書き方できるのかな?

zundoko.cr
zd = 0
until (zd == 30)
  puts (zd = ((zd << 1) + rand(2)) & 31).even? ? "ドコ" : "ズン"
end
puts "キ・ヨ・シ!!"

2016/03/15追記

"ドコ" : "ズン"はやっぱり"ズン" : "ドコ"になるべきなのでは?」と自分からツッコミが入ったので修正版。

zundoko2.cr
zd = 0
until (zd == 30)
  puts (zd = ((zd << 1) + rand(2)) & 31).odd? ? "ズン" : "ドコ"
end
puts "キ・ヨ・シ!!"

ちなみに,Ruby だと後置の until が使えるので1,もう少しコンパクトになって,ランダムでズンドコ出すところからキヨシ条件の判定までを1行で賄えます。

zundoko.rb
zd = 0
puts (zd = ((zd << 1) + rand(2)) & 31).odd? ? "ズン" : "ドコ" until (zd == 30)
puts "キ・ヨ・シ!!"

  1. Crystal では whileuntil を後置で使えません 

Comments Loading...