wordle-shell
Version:
A Wordle for the command line
45 lines (42 loc) • 1.13 kB
text/typescript
import WordListPt from "./data/pt_br.json";
import WordListEn from "./data/en_us.json";
import sd from "seedrandom";
export enum Langs {
ptBr = "pt-br",
enUs = "en-us"
}
class WordPicker {
private word: string;
private words: string[];
constructor(lang: Langs) {
this.words = WordPicker.getWordList(lang);
const index = this.generateIndex();
this.word = this.words.at(index) ?? "Error";
}
public static getWordList(lang: Langs) {
switch (lang) {
case Langs.ptBr:
return WordListPt;
case Langs.enUs:
return WordListEn;
default:
return WordListEn;
}
}
public getWordList() {
return this.words;
}
public getWord() {
return this.word;
}
private generateIndex() {
const rng = WordPicker.seed();
const rand_number = rng();
return Math.floor(rand_number * this.words.length);
}
private static seed() {
const today = new Date();
return sd(today.toDateString());
}
}
export default WordPicker;