4
4

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.

[Crystal] ズンドコキヨシCR

Last updated at Posted at 2016-03-14

何やら流行ってるっぽいので,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 を後置で使えません

4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?