Skip to main content

Crate sudoku_plus

Crate sudoku_plus 

Source
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 SudokuElement is 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_sudoku module provides the struct CubicSudoku for 3D cubic sudoku.
multi_layer_sudoku
The multi_layer_Sudoku module provides the struct MultiLayerSudoku for 3D multi-layer sudoku.
plane_sudoku
The plane_sudoku module provides the struct PlaneSudoku for 2D plane sudoku.
sudoku_element
The sudoku_element module provides the trait SudokuElement for sudoku elements.