Sha256: 9a40d0c305be3ad36f62bb60928439ac6ac1560b9279464dda5733fbc5540eb5

Contents?: true

Size: 1.28 KB

Versions: 54

Compression:

Stored size: 1.28 KB

Contents

const defaultChildren = [
    'Alice',
    'Bob',
    'Charlie',
    'David',
    'Eve',
    'Fred',
    'Ginny',
    'Harriet',
    'Ileana',
    'Joseph',
    'Kincaid',
    'Larry',
]

interface Plants {
    [code: string]: string
}

const plants: Plants = {
    G: "grass",
    V: "violets",
    R: "radishes",
    C: "clover"
}

interface Pots {
    upper: string[]
    lower: string[]
}

const converToPots = (pots: string[][]): Pots => {
    return {
        upper: pots[0],
        lower: pots[1]
    }
}

const getPlants = (pots: Pots, index: number): string[] => {
    const plants = []
    const position = 2 * index
    plants.push(pots.upper[position])
    plants.push(pots.upper[position + 1])
    plants.push(pots.lower[position])
    plants.push(pots.lower[position + 1])
    return plants
}

const parse = (diagram: string): string[][] => {
    return diagram.split('\n').map((row) => [...row].map((sign) => plants[sign]))
}

export default class Garden {
    [student: string]: string[]

    constructor(diagrams: string, students?: string[]) {
        this.students = students || defaultChildren
        this.students.sort()

        this.students.forEach((student, index) => {
            this[student.toLocaleLowerCase()] = getPlants(converToPots(parse(diagrams)), index)
        })
    }
}

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.179 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.178 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.177 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.176 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.175 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.174 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.173 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.172 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.171 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.170 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.169 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.167 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.166 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.165 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.164 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.163 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.162 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.161 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts
trackler-2.2.1.160 tracks/typescript/exercises/kindergarten-garden/kindergarten-garden.example.ts