Skip to content

Instantly share code, notes, and snippets.

@maraigue
Last active April 5, 2016 06:49
Show Gist options
  • Save maraigue/8e1346859172b079547c to your computer and use it in GitHub Desktop.
Save maraigue/8e1346859172b079547c to your computer and use it in GitHub Desktop.
[Ruby][74文字で書いた] 「ズン」か「ドコ」をランダムに出力し、「ズンズンズンズンドコ」が並んだ時点で「キ・ヨ・シ!」を出力し終了する
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
# https://twitter.com/kumiromilk/status/707437861881180160
c=0;loop{$><<%w(ドコ ズン)[k=rand(2)];break if c>3&&k==0;c=k*c+k};puts"キ・ヨ・シ!"
# 解説
#
# c=0
# 「ズン」が続いた数を数える。
# これが3を超えた状態で「ドコ」が出れば終わらせることになる。
# $><<%w(ドコ ズン)[k=rand(2)]
# $><< はコードゴルフでよく見る手段。「$>」はデフォルトの出力先(通常は標準出力)。
# 代入を配列の添え字の中で行うことで、コードの長さを減らしている。
# ドコを0・ズンを1にしたのは、cを計算しやすくするため。
# c=k*c+k
# k==0ならばc=0、k==1ならばc=c+1と更新されるようにしている。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment