generated from PlexSheep/rs-base
features and docs
This commit is contained in:
parent
76453dedf6
commit
837a28fb37
|
@ -13,8 +13,9 @@ keywords = ["wordle", "benchmark"]
|
||||||
default-run = "wordlec"
|
default-run = "wordlec"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["game", "bench", "tui"]
|
default = ["game", "bench", "tui", "solvers"]
|
||||||
game = []
|
game = []
|
||||||
|
solvers = []
|
||||||
tui = ["game"]
|
tui = ["game"]
|
||||||
bench = []
|
bench = []
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,38 @@ impl Game {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Build and Configure a [`Game`]
|
||||||
|
///
|
||||||
|
/// This struct is used to build and configure a [`Game`] of Wordle.
|
||||||
|
///
|
||||||
|
/// ## Examples
|
||||||
|
///
|
||||||
|
/// [`GameBuilder`] implements [`Default`]. [`Game::builder`] uses [`GameBuilder::default`].
|
||||||
|
/// You don't need to set custom values if you accept the defaults.
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// # use wordle_analyzer::game::*;
|
||||||
|
/// # use anyhow::Result;
|
||||||
|
/// # fn main() -> Result<()> {
|
||||||
|
/// let game: Game = GameBuilder::default()
|
||||||
|
/// .build()?;
|
||||||
|
/// # Ok(())
|
||||||
|
/// # }
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// # use wordle_analyzer::game::*;
|
||||||
|
/// # use anyhow::Result;
|
||||||
|
/// # fn main() -> Result<()> {
|
||||||
|
/// let game: Game = Game::builder()
|
||||||
|
/// .length(5)
|
||||||
|
/// .precompute(false)
|
||||||
|
/// .max_steps(6)
|
||||||
|
/// .build()?;
|
||||||
|
/// # Ok(())
|
||||||
|
/// # }
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||||
pub struct GameBuilder {
|
pub struct GameBuilder {
|
||||||
length: usize,
|
length: usize,
|
||||||
|
@ -57,17 +89,30 @@ impl GameBuilder {
|
||||||
Ok(game)
|
Ok(game)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets the precompute of this [`GameBuilder`].
|
/// Should we pre compute all possible answers? This will make startup significantly more
|
||||||
|
/// expensive, but reduce the computing time while playing.
|
||||||
|
///
|
||||||
|
/// Default is [`false`]
|
||||||
pub fn precompute(mut self, precompute: bool) -> Self {
|
pub fn precompute(mut self, precompute: bool) -> Self {
|
||||||
self.precompute = precompute;
|
self.precompute = precompute;
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets the length of this [`GameBuilder`].
|
/// Set the length of words for the game
|
||||||
|
///
|
||||||
|
/// Default is [`super::DEFAULT_WORD_LENGTH`]
|
||||||
pub fn length(mut self, length: usize) -> Self {
|
pub fn length(mut self, length: usize) -> Self {
|
||||||
self.length = length;
|
self.length = length;
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set the amount of guesses per game
|
||||||
|
///
|
||||||
|
/// Default is [`super::DEFAULT_MAX_STEPS`]
|
||||||
|
pub fn max_steps(mut self, max_steps: usize) -> Self {
|
||||||
|
self.max_steps = max_steps;
|
||||||
|
self
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for GameBuilder {
|
impl Default for GameBuilder {
|
||||||
|
|
|
@ -7,5 +7,9 @@ pub const DEFAULT_WORD_LENGTH: usize = 5;
|
||||||
/// Default amount of guesses per game
|
/// Default amount of guesses per game
|
||||||
pub const DEFAULT_MAX_STEPS: usize = 6;
|
pub const DEFAULT_MAX_STEPS: usize = 6;
|
||||||
|
|
||||||
|
#[cfg(feature = "game")]
|
||||||
pub mod game;
|
pub mod game;
|
||||||
|
#[cfg(feature = "solvers")]
|
||||||
pub mod solvers;
|
pub mod solvers;
|
||||||
|
#[cfg(feature = "bench")]
|
||||||
|
pub mod bench;
|
||||||
|
|
Loading…
Reference in New Issue