nissy-nx

A Rubik's cube optimal solver
git clone https://git.tronto.net/nissy-nx
Download | Log | Files | Refs | README | LICENSE

commit 6dc6d1004393b7c093a3aef7456af67662d56fee
parent fcb3ac9b02c3ed150fbf6d539613510cc83627ea
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Mon, 16 Jan 2023 18:47:50 +0100

Refined comments for solve rework

Diffstat:
MTODO/2.1.md | 19++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/TODO/2.1.md b/TODO/2.1.md @@ -2,9 +2,22 @@ ## Rework solver -* Split solve in solve_coord, solve_generic (and maybe solve_singlethread, see - notes about build options). -* Add a void * extradata to DfsArg. +### Architecture + +* Nail down the theory first +* One generic solve module that does not depend on anything else, + not even on cube if possible +* The generic file includes the logic for branching and calls functions + provided as parameters to move the cube and check the status etc... +* This includes the logic for single/multithreading (simplify if compiled + with N_THREADS = 1 or whatever this option is going to be) +* The data representing the cube is a void pointer +* Move two-step solve to a different module +* Each other solver (solve coord, solve fst, solve multistep) + should go in a separate module + +### Other practicalities + * remove cube from dfsarg? (i still need to save the scramble somewhere, but I really only use it in dfs_niss) * Re-work prepare_step process for solve_generic (nxopt table is special).