add entrypoint for simulations
This commit is contained in:
parent
bbc4e53a9a
commit
43c835d1eb
1 changed files with 38 additions and 0 deletions
38
src/simulation.ts
Executable file
38
src/simulation.ts
Executable 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();
|
Loading…
Add table
Add a link
Reference in a new issue