Sha256: b345437b470c55f84d056d2cf38b614d30d64a0104e10fdf3a76cc8272620fba

Contents?: true

Size: 935 Bytes

Versions: 214

Compression:

Stored size: 935 Bytes

Contents

import java.util.*

class DiamondPrinter {

    companion object {
        private val A_INT = 'A'.toInt()

        private fun blank(length: Int): String {
            return Collections.nCopies(length, " ").joinToString("")
        }
    }

    fun printToList(chr: Char): List<String> {
        val nRows = 2 * (chr.toInt() - A_INT) + 1

        val result = mutableListOf<String>()

        // Populate the top rows.
        for (nRow in 0..(nRows + 1) / 2 - 1) {
            val rowChr = (A_INT + nRow).toChar()

            val leftHalfOfRow = blank((nRows - 1) / 2 - nRow) + rowChr + blank(nRow)
            val rightHalfOfRow = leftHalfOfRow.reversed().drop(1)
            val fullRow = "$leftHalfOfRow$rightHalfOfRow"

            result.add(fullRow)
        }

        // Populate the bottom rows by 'reflecting' all rows above the middle row.
        result.addAll(result.reversed().drop(1))

        return result
    }

}

Version data entries

214 entries across 214 versions & 1 rubygems

Version Path
trackler-2.2.1.78 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.77 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.76 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.75 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.74 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.73 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.72 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.71 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.70 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.69 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.68 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.67 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.66 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.65 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.64 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.63 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.62 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.61 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.60 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt
trackler-2.2.1.59 tracks/kotlin/exercises/diamond/.meta/src/reference/kotlin/DiamondPrinter.kt