Expand description
§Sudoku-plus: An Expandable Sudoku Library
Sudoku-plus is a versatile Rust library designed for providing
various kinds of sudoku algorithms. It provides 2D plane sudoku algorithm,
3D multi-layer sudoku algorithm, and 3D cubic sudoku algorithm.
They generates sudoku problems and solves sudoku problems. They are designed
to be flexible and efficient, allowing users to easily create and solve
sudoku puzzles of varying sizes and complexities. The library is built with
a focus on performance and usability, making it suitable for both casual
puzzle enthusiasts and developers looking to integrate sudoku functionality
into their applications. sudoku-plus is a versatile Rust library designed
for generating and solving various Sudoku structures,
including Plane, Multi-layer, and Cubic Sudoku.
§Roadmap for Version 1.0
The following features are planned for the sudoku-plus ecosystem.
- Completed: Implementation and documentation are at least 95% complete.
- In Progress: Implementation or documentation is below 95%, or work has not yet begun.
§1. 2D Sudoku
-
PlaneSudoku: A generic 2D Sudoku with a (N^2 X N^2) grid.
You can define the size by choosing the constant
N. – PlaneSudoku
§2. 3D Sudoku
-
Multi-layer Sudoku: A 3D Sudoku structure with dimensions of
(N^2 X N^2 X N^2). The size is determined by the constant
N. – MultiLayerSudoku -
Cubic Sudoku: A 3D Sudoku structure with dimensions of (N^3 X N^3 X N^3). The size is determined by the constant
N. – CubicSudoku
§3. Sudoku Elements
-
Sudoku Element: A generic Sudoku component designed for building
complex applications, such as academic timetable generators powered by
Sudoku algorithms. For the future use, this trait
SudokuElementis defined for sudoku elements. It is supposed to be implemented by any data type that supports cryptocol::number::SmallUInt. It can be removed in the future if it is found not necessary. – SudokuElement.
§Versioning Policy
The project will reach Version 1.0.0 once all functional areas listed above are fully implemented.
- Pre-v1.0: Versions will range up to 0.3.x based on the progress of the listed functionalities.
- Post-v1.0: New features and stable releases will follow standard semantic versioning beyond 1.0.0.
_Note: Version numbers like 0.2.0 indicate progress through the functionality list, not necessarily a 20% completion of the entire codebase.
Re-exports§
pub use plane_sudoku::PlaneSudoku;pub use multi_layer_sudoku::MultiLayerSudoku;pub use cubic_sudoku::CubicSudoku;pub use sudoku_element::SudokuElement;pub use plane_sudoku::PlaneSudoku_4X4;pub use plane_sudoku::PlaneSudoku_9X9;pub use plane_sudoku::PlaneSudoku_16X16;pub use plane_sudoku::PlaneSudoku_25X25;pub use plane_sudoku::PlaneSudoku_36X36;pub use plane_sudoku::PlaneSudoku_49X49;pub use plane_sudoku::PlaneSudoku_64X64;pub use plane_sudoku::PlaneSudoku_81X81;pub use plane_sudoku::PlaneSudoku_100X100;pub use plane_sudoku::PlaneSudoku_121X121;pub use plane_sudoku::PlaneSudoku_144X144;pub use plane_sudoku::PlaneSudoku_169X169;pub use plane_sudoku::PlaneSudoku_196X196;pub use plane_sudoku::PlaneSudoku_225X225;pub use plane_sudoku::PlaneSudoku_289X289;pub use plane_sudoku::PlaneSudoku_324X324;pub use plane_sudoku::PlaneSudoku_361X361;pub use plane_sudoku::PlaneSudoku_400X400;pub use multi_layer_sudoku::MultiLayerSudoku_4X4X4;pub use multi_layer_sudoku::MultiLayerSudoku_9X9X9;pub use multi_layer_sudoku::MultiLayerSudoku_16X16X16;pub use multi_layer_sudoku::MultiLayerSudoku_25X25X25;pub use multi_layer_sudoku::MultiLayerSudoku_36X36X36;pub use multi_layer_sudoku::MultiLayerSudoku_49X49X49;pub use multi_layer_sudoku::MultiLayerSudoku_64X64X64;pub use multi_layer_sudoku::MultiLayerSudoku_81X81X81;pub use multi_layer_sudoku::MultiLayerSudoku_100X100X100;pub use multi_layer_sudoku::MultiLayerSudoku_121X121X121;pub use multi_layer_sudoku::MultiLayerSudoku_144X144X144;pub use multi_layer_sudoku::MultiLayerSudoku_169X169X169;pub use multi_layer_sudoku::MultiLayerSudoku_196X196X196;pub use multi_layer_sudoku::MultiLayerSudoku_225X225X225;pub use multi_layer_sudoku::MultiLayerSudoku_289X289X289;pub use multi_layer_sudoku::MultiLayerSudoku_324X324X324;pub use multi_layer_sudoku::MultiLayerSudoku_361X361X361;pub use multi_layer_sudoku::MultiLayerSudoku_400X400X400;
Modules§
- cubic_
sudoku - The
cubic_sudokumodule provides the structCubicSudokufor 3D cubic sudoku. - multi_
layer_ sudoku - The
multi_layer_Sudokumodule provides the structMultiLayerSudokufor 3D multi-layer sudoku. - plane_
sudoku - The
plane_sudokumodule provides the structPlaneSudokufor 2D plane sudoku. - sudoku_
element - The
sudoku_elementmodule provides the traitSudokuElementfor sudoku elements.