LoginSignup
2
1

More than 5 years have passed since last update.

Swiftでズンドコキヨシ(ビット演算版)

Posted at

晩飯食おうと思ったら謎のブームが来ていたので一つ書いてみました。
元ネタ→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になったらループを抜けてキヨシを出力する感じです。

また、変数his11111111で初期化することで、いきなりドコが来た時などの誤判定を防いでいます(無理矢理感あります)。

出力例

ドコ
ズン
ズン
ドコ
ズン
ドコ
ドコ
ドコ
ドコ
ズン
ドコ
ズン
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ドコ
ドコ
ドコ
ズン
ズン
ズン
ドコ
ズン
ズン
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ズン
ズン
ズン
ドコ
ドコ
ドコ
ズン
ドコ
ズン
ズン
ドコ
ドコ
ズン
ドコ
ズン
ズン
ドコ
ズン
ズン
ドコ
ズン
ドコ
ドコ
ドコ
ズン
ドコ
ズン
ズン
ドコ
ドコ
ズン
ドコ
ズン
ドコ
ズン
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ドコ
ズン
ドコ
ドコ
ドコ
ズン
ズン
ズン
ズン
ドコ
キ・ヨ・シ!!
2
1
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
2
1