Sha256: 5db4fd893a3966a9e069b665afd9cdafe28cb696045fd75db3d980d6172af899

Contents?: true

Size: 946 Bytes

Versions: 281

Compression:

Stored size: 946 Bytes

Contents

function unified_random(): number {
    return Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER)
}

function  generateRandomLetter(): string {
    const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    const letters = alphabet.split("")
    const randomIndex = unified_random() % letters.length
    return letters[randomIndex]
}

export default class RobotName {
    private _name: string
    private usedNames = new Set<string>()

    get name(): string {
        return this._name
    }

    constructor() {
       this.resetName()
    }
private generateName(): string {
    const numberPart = (unified_random() % 899) + 100
    let result = generateRandomLetter() + generateRandomLetter() + numberPart
    while (this.usedNames.has(result)) {
        result = generateRandomLetter() + generateRandomLetter() + numberPart
    }
    this.usedNames.add(result)
    return result
}
    resetName() {
        this._name = this.generateName()
    }
}

Version data entries

281 entries across 281 versions & 1 rubygems

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