小学生の息子がズンドコキヨシをPythonで作ったので、もうかなり出遅れたけど私はSwiftのAnyGeneratorとlazyを使ってやってみた。
enum Zundoko: String {
case Zun = "ズン"
case Doko = "ドコ"
}
var zundoko = Array<Zundoko>()
let gen = anyGenerator { return arc4random_uniform(2) == 0 ? Zundoko.Zun : Zundoko.Doko }
.lazy
.map { (zd) -> [Zundoko] in
zundoko.append(zd)
if zundoko.count > 5 {
zundoko.removeFirst()
}
return Array(zundoko)
}
.filter { (zundoko: [Zundoko]) -> Bool in
print(zundoko.last!.rawValue)
let result = zundoko.map { $0.rawValue } .joinWithSeparator("") == "ズンズンズンズンドコ"
if result { print("キ・ヨ・シ!") }
return result
}
gen.prefix(1).generate().next()