How gaurav-125/rubik-s-cube-solver works
This is a C++ Rubik’s Cube model and search-solver project. Its active example creates a bitboard cube, shuffles it, asks IDA* to solve it, then displays the moves and resulting cube. The shared abstract cube API supports three state representations and common move, solved-state, and display operations; the solver directory also contains BFS, DFS, and iterative-deepening DFS. The README is empty, so capabilities are inferred from the source index and excerpts; relationships for unused solver variants are shown only where their implementations support them.
Main entry points: GenericsRubiksCube.h Cube API · main.cpp Demo run · IDDFSsolver.h Iterative DFS · GenericsRubiksCube.cpp Cube operations
Components 10
Cube model
- Cube API
GenericsRubiksCube.h - Cube operations
GenericsRubiksCube.cpp
State representations
Search solvers
- BFS
Solver/BFSsolver.h - DFS
Solver/DFSsolver.h - Iterative DFS
Solver/IDDFSsolver.h - IDA*
Solver/IDAstarSolver.h
Other components
- Demo run
main.cpp
Connections 12
- Demo run → Bitboard: creates and shuffles
main.cpp - Demo run → IDA*: solves with
main.cpp - Demo run → Cube operations: prints and formats
main.cpp - IDA* → Cube API: searches via
Solver/IDAstarSolver.h - BFS → Cube API: searches via
Solver/BFSsolver.h - DFS → Cube API: searches via
Solver/DFSsolver.h - Iterative DFS → Cube API: searches via
Solver/IDDFSsolver.h - Iterative DFS → DFS: iterates
Solver/IDDFSsolver.h - Cube operations → Cube API: implements operations
GenericsRubiksCube.cpp - 3D array → Cube API: implements state API
RubiksCube3dArray.cpp - 1D array → Cube API: implements state API
RubiksCube1dArray.cpp - Bitboard → Cube API: implements state API
RubiksCubeBitboard.cpp