3 releases
0.1.2 | Jun 23, 2020 |
---|---|
0.1.1 | Jun 23, 2020 |
0.1.0 | Jun 23, 2020 |
#1567 in Math
35KB
725 lines
Rusty Rubik
Rusty Rubik is a Rubik's Cube solving program implemented in Rust.
Downloading
You can get this repo via cloning through Git:
git clone https://github.com/esqu1/Rusty-Rubik
Running
It is preferable to run the program in release mode, since this will dramatically speed up the search time for a solution. First, build the project:
cargo build --release
If you don't want to run it in release mode, simply leave out the --release
flag. You will first need to generate the pruning tables necessary for the IDA solver to run:
cargo run --release -- -p
This will create pruning tables corners.pt
, edges_o.pt
, and edges_p.pt
in the root directory of the project. To verify that these were generated correctly, run the verification script:
./scripts/verify_checksum.sh
On my CPU (AMD Ryzen 5 3600 @ 3.6 GHz, 6 cores) the pruning tables take about 10 minutes to generate, so I'm expecting most modern processors should take around 15-20 minutes to finish.
Then you can run the executable in target/release/rusty-rubik
. You can see the available options using the --help
flag:
./target/release/rusty-rubik --help
Documentation
The document requires the KaTeX header file to be built with it to render properly. You can build the documentation for this project via:
RUSTDOCFLAGS="--html-in-header header.html" cargo doc --no-deps --open
Dependencies
~7MB
~132K SLoC