add entrypoint for simulations

This commit is contained in:
JOLIMAITRE Matthieu 2024-04-30 16:41:29 +02:00
parent bbc4e53a9a
commit 43c835d1eb

38
src/simulation.ts Executable file
View file

@ -0,0 +1,38 @@
#!/usr/bin/env -S deno run --allow-read
import { Command } from "https://deno.land/x/cliffy@v1.0.0-rc.4/command/mod.ts";
import { Dict, Guesser, Runner, Simulator } from "./lib/lib.ts";
import { TableLogging } from "./lib/runner.ts";
async function main() {
const args = await new Command().name("simulation")
.description(
"Program to simulate TUSMO game with guesser controller.",
)
.option(
"-d, --dictionnary <path:string>",
"Sets dictionnary to use words from.",
{ default: "./data/liste_francais.txt" },
).option(
"-n, --length <length:number>",
"Length of the word to use from the dictionnary.",
{ default: 6 },
).option(
"-w, --wait <wait:number>",
"Time to wait between guesses, in ms.",
{ default: 500 },
).parse(Deno.args);
const dict = await Dict.from_file(args.options.dictionnary, args.options.length);
const guesser = new Guesser(dict);
const game = Simulator.from_dict_rand(dict);
console.log("Target is", game.word);
console.log();
const runner = new Runner(game, guesser, new TableLogging(), args.options.wait);
await runner.play_all();
}
if (import.meta.main) await main();