LoginSignup
5
5

More than 5 years have passed since last update.

Kotlinでズンドコキヨシ

Posted at

関数型っぽくしてみたかったのでSequenceを使ってみました。(コード量は気にしてないです)

import java.util.Random

fun main(v: Array<String>) {
    //無限リスト(風)を用意
    val zun = "ズン"
    val doko = "ドコ"
    val getZunOrDoko = { if (Random().nextBoolean()) zun else doko }
    val sequence = generateSequence(getZunOrDoko)

    //畳み込みながら判定していく
    sequence.fold(listOf<String>()) { list, zunOrDoko ->
        println(zunOrDoko)
        val latest = listOf(list, listOf(zunOrDoko)).flatten().takeLast(5) //直近5個を用意
        //Thread.sleep(500)
        if (latest == listOf(zun, zun, zun, zun, doko)) {
            println("き・よ・し!")
            return@main
        }
        latest
    }
}

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