generated from PlexSheep/rs-base
improve naive solver #13
|
@ -64,3 +64,11 @@ test-log = { version = "0.2.16", default-features = false, features = [
|
|||
"color",
|
||||
"trace",
|
||||
] }
|
||||
|
||||
[[bench]]
|
||||
name = "solver_naive"
|
||||
harness = false
|
||||
|
||||
[[bench]]
|
||||
name = "solver_stupid"
|
||||
harness = false
|
||||
|
|
|
@ -26,5 +26,6 @@ have to guess words by slowly guessing the letters contained in it.
|
|||
Included in this repository are the following wordlists:
|
||||
|
||||
<!-- TODO: make sure this is properly cited -->
|
||||
* [3Blue1Brown Top English words](./data/wordlists/german_SUBTLEX-DE.json) --- [`./data/wordlists/en_US_3b1b_freq_map.json`](https://github.com/3b1b/videos/tree/master/_2022/wordle/data)
|
||||
* [~33.000 Common German Words](./data/wordlists/german_SUBTLEX-DE.json) --- [SUBTLEX-DE](https://osf.io/py9ba/files/osfstorage)
|
||||
* [`./data/wordlists/en_US_3b1b_freq_map.json`](./data/wordlists/en_US_3b1b_freq_map.json) --- [3Blue1Brown Top English words](https://github.com/3b1b/videos/tree/master/_2022/wordle/data)
|
||||
* [`./data/wordlists/german_SUBTLEX-DE_full.json`](./data/wordlists/german_SUBTLEX-DE_full.json) --- [SUBTLEX-DE ~33.000 Common German Words](https://osf.io/py9ba/files/osfstorage)
|
||||
* [`./data/wordlists/german_SUBTLEX-DE_small.json`](./data/wordlists/german_SUBTLEX-DE_small.json) --- [SUBTLEX-DE ~33.000 Common German Words (reduced to most common)](https://osf.io/py9ba/files/osfstorage)
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
use wordle_analyzer::bench::builtin::BuiltinBenchmark;
|
||||
use wordle_analyzer::bench::Benchmark;
|
||||
use wordle_analyzer::game::{self, GameBuilder};
|
||||
use wordle_analyzer::solve::{NaiveSolver, Solver};
|
||||
use wordle_analyzer::wlist::builtin::BuiltinWList;
|
||||
|
||||
fn main() -> anyhow::Result<()> {
|
||||
let wl = BuiltinWList::english(5);
|
||||
let builder: GameBuilder<'_, BuiltinWList> = game::Game::builder(&wl)
|
||||
.length(5)
|
||||
.max_steps(6)
|
||||
.precompute(true);
|
||||
let solver: NaiveSolver<_> = NaiveSolver::build(&wl)?;
|
||||
let bench = BuiltinBenchmark::build(&wl, solver, builder, 16)?;
|
||||
bench.start(2000, &bench.builder())?;
|
||||
println!("{}", bench.report());
|
||||
Ok(())
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
use wordle_analyzer::bench::builtin::BuiltinBenchmark;
|
||||
use wordle_analyzer::bench::Benchmark;
|
||||
use wordle_analyzer::game::{self, GameBuilder};
|
||||
use wordle_analyzer::solve::Solver;
|
||||
use wordle_analyzer::solve::StupidSolver;
|
||||
use wordle_analyzer::wlist::builtin::BuiltinWList;
|
||||
|
||||
fn main() -> anyhow::Result<()> {
|
||||
let wl = BuiltinWList::english(5);
|
||||
let builder: GameBuilder<'_, BuiltinWList> = game::Game::builder(&wl)
|
||||
.length(5)
|
||||
.max_steps(6)
|
||||
.precompute(true);
|
||||
let solver: StupidSolver<_> = StupidSolver::build(&wl)?;
|
||||
let bench = BuiltinBenchmark::build(&wl, solver, builder, 16)?;
|
||||
bench.start(2000, &bench.builder())?;
|
||||
println!("{}", bench.report());
|
||||
Ok(())
|
||||
}
|
|
@ -1,10 +1,8 @@
|
|||
use test_log::test; // set the log level with an envvar: `RUST_LOG=trace cargo test`
|
||||
|
||||
use wordle_analyzer::game::evaluation::Evaluation;
|
||||
use wordle_analyzer::game::Game;
|
||||
use wordle_analyzer::solve::{AnyBuiltinSolver, NaiveSolver, Solver, StupidSolver};
|
||||
use wordle_analyzer::wlist::builtin::BuiltinWList;
|
||||
use wordle_analyzer::wlist::word::{Word, WordData};
|
||||
use wordle_analyzer::wlist::WordList;
|
||||
|
||||
use rayon::prelude::*;
|
||||
|
|
Loading…
Reference in New Issue