Sha256: 886a3b006c7388317c4818e37fd340e093befd9b55b58c172cce63967ea1ab3c

Contents?: true

Size: 851 Bytes

Versions: 112

Compression:

Stored size: 851 Bytes

Contents

struct Diamond {
    static let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".characters.map { $0 }

    static func makeDiamond(letter: Character) -> [String] {
        guard let index = alphabet.index(of: letter) else {
            return []
        }

        let numberOfLines = index * 2 + 1
        let middle = numberOfLines / 2
        var result = [String]()

        for lineNumber in 0..<numberOfLines {
            var line = ""

            for column in 0..<numberOfLines {
                let distanceFromMiddle = middle - abs(middle - lineNumber)

                if abs(middle - column) == distanceFromMiddle {
                    line.append(alphabet[distanceFromMiddle])
                } else {
                    line.append(" ")
                }
            }
            result.append(line)
        }

        return result
    }
}

Version data entries

112 entries across 112 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.179 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.178 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.177 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.176 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.175 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.174 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.173 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.172 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.171 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.170 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.169 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.167 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.166 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.165 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.164 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.163 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.162 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.161 tracks/swift/exercises/diamond/Sources/DiamondExample.swift
trackler-2.2.1.160 tracks/swift/exercises/diamond/Sources/DiamondExample.swift