1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//! Generators, solvers and difficulty raters for pencil puzzles.
//!
//! Each genre is a module, behind a feature of the same name. All genres are
//! enabled by default. To compile fewer genres, turn off default features and
//! enable the ones you need.
//!
//! ```
//! # #[cfg(feature = "kakurasu")] {
//! use pencil_puzzles::Difficulty;
//! use pencil_puzzles::kakurasu::{self, GenerateOptions};
//!
//! let mut options = GenerateOptions::new("6x6".parse().unwrap(), 42);
//! options.difficulty = Some(Difficulty::Hard);
//! let generated = kakurasu::generate(&options, &pencil_puzzles_core::Budget::unlimited()).unwrap();
//! assert_eq!(generated.rating.level, Difficulty::Hard);
//! # }
//! ```
//!
//! # Features
//!
//! - `all-genres` (default): every genre.
//! - One feature per genre, such as `kakurasu`.
//! - `serde`: implements `Serialize` and `Deserialize` for each genre's
//! puzzles, solutions and ratings.
pub use *;
/// Fillomino: regions numbered with their sizes, same sizes never touching.
pub use pencil_puzzles_fillomino as fillomino;
/// Hashi: islands joined by bridges matching their numbers.
pub use pencil_puzzles_hashi as hashi;
/// Hitori: shade repeated numbers so that the unshaded cells stay connected.
pub use pencil_puzzles_hitori as hitori;
/// Kakurasu: shade cells so that every row and column adds up to its clue.
pub use pencil_puzzles_kakurasu as kakurasu;
/// Kakuro: digits in white cells adding up to the sums in the blocks.
pub use pencil_puzzles_kakuro as kakuro;
pub use ;
/// Sudoku: fill rows, columns and boxes with distinct digits.
pub use pencil_puzzles_sudoku as sudoku;
/// Nurikabe: numbered islands and one connected shaded sea.
pub use pencil_puzzles_nurikabe as nurikabe;