Sha256: 858004c7b4c51bcacc254704061dcb9881d879150a7a028f8b498dad7dc335d6

Contents?: true

Size: 615 Bytes

Versions: 396

Compression:

Stored size: 615 Bytes

Contents

import java.util.*

class Robot {

    companion object {
        private val alphabet = ('A'..'Z').toList()
        private val numbers = (0..9).toList()

        private val random = Random()
        private fun <T : Any> random(list: List<T>): Sequence<T> = generateSequence { list[random.nextInt(list.size)] }
    }

    var name: String = makeName()
        private set

    fun reset() {
        name = makeName()
    }

    private fun makeName() = prefix() + suffix()
    private fun prefix() = random(alphabet).take(2).joinToString("")
    private fun suffix() = random(numbers).take(3).joinToString("")
}

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.179 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.178 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.177 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.176 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.175 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.174 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.173 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.172 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.171 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.170 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.169 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.167 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.166 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.165 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.164 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.163 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.162 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.161 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt
trackler-2.2.1.160 tracks/kotlin/exercises/robot-name/.meta/src/reference/kotlin/Robot.kt