晩飯食おうと思ったら謎のブームが来ていたので一つ書いてみました。
元ネタ→http://qiita.com/shunsugai@github/items/971a15461de29563bf90
ソースと解説
import UIKit
var his = UInt8.max
repeat {
let doko = UInt8(arc4random_uniform(2))
his = (his << 1) | doko
print(doko == 1 ? "ドコ" : "ズン")
} while (his & 0x1f) != 1
print("キ・ヨ・シ!!")
変数his
に0(ズン)か1(ドコ)かを溜めていって、
ズンズンズンズンドコ、つまり変数his
の下位5ビットが00001
になったらループを抜けてキヨシを出力する感じです。
また、変数his
は11111111
で初期化することで、いきなりドコが来た時などの誤判定を防いでいます(無理矢理感あります)。
出力例
ドコ
ズン
ズン
ドコ
ズン
ドコ
ドコ
ドコ
ドコ
ズン
ドコ
ズン
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ドコ
ドコ
ドコ
ズン
ズン
ズン
ドコ
ズン
ズン
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ズン
ズン
ズン
ドコ
ドコ
ドコ
ズン
ドコ
ズン
ズン
ドコ
ドコ
ズン
ドコ
ズン
ズン
ドコ
ズン
ズン
ドコ
ズン
ドコ
ドコ
ドコ
ズン
ドコ
ズン
ズン
ドコ
ドコ
ズン
ドコ
ズン
ドコ
ズン
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ドコ
ドコ
ズン
ズン
ズン
ズン
ドコ
キ・ヨ・シ!!