beginnings of the Kilominx verifier
beginnings of ther Kilominx verifier
comment
minor
Another part of the fix for shape-shifting cuboids: we need to write numLayers to JSON (rather than computing it from mRotatable) because it turns out mNumLayers can be different than the lengths of mRotatable!
This and new object JSONs for the 3 shape-shifters (other object default back to the old method of computing numLayers on read from JSON)
fix for scrambling shape-shifting cuboids. Before when scrambling e.g. the CU_242, we would sometimes 'hit air' (try to rotate a layer which does not have any cubits in it)
Algorithmic solvers (at least the 3x3 beginner and the Kilominx) seem to be working now.
progress with Algorithmic solvers. Seem to solve all right now; but still problems with which cubits it lights.
fixes for Algorithmic solvers (but those still do not work correctly!)
a dialog to interrupt too long solves
Add the 'interrupt()' API to all solversAdd the 'start/stopSolving' notification to ResultScreen
Initial support for Algorithmic Kilominx verifier and introduction of it into the App.
Do not call the Kociemba solver on an already solved position.
Integration of the Algorithmic solver 'SolverAlgorithmicCUBE3' with the app pretty much done.
3x3 position validator finished; what's left is compute the quat table knowing the position is correct.
Properly define and separate the interface between the App and the 'solver' part of the objectlib. Move the 'position verifiers' to the objectlib.
Integration of the Algorithmic solvers into the App.
Restructuring for the solvers in the app.
Progeress towards automatically integrating the Algorithmic solvers into the list of solvers in the App.
Glow cubits involved in the phase.
Step towards glowing cubits involved in a phase.
push objectRatio up from TwistyObjectControllable to the last layer.
Remove the final remnants of legacy 'ghost' stuff.
Carve out the fifth layer: touch control.
Carve out the fourth layer: stickers.
Carve out the third layer from the Puzzle implementation: TwistyPuzzleSolved, i.e. detection of the solved state.
Next: the fourth layer: stickers.Then: fifth layer: touch control.Then: everything else. (metadata?)
API name changes; fix for Dino4's solved state!
Minor
remove numLayers from parameter list of 3 next methods.
correction.
remove numLayers from 4 API methods.
Clean up TwistyObjectWithMesh's API (remove getDist3D() and getSize() )
Make calculation of circumscribed radius work for any current and future object.
Cleanup
bugfix (move iconode to TwistyObjectWithMesh as mesh creation sometimes depends on the mode)
port fixes from master
Carve out another, 2nd layer from TwistyObject: everything related to creating its Mesh.
Progress with PhasedSolver app.
SolverKilominx finished.
Add possibility to select different solvers.
Better structure things architecturally.
More for Solver Kilominx (almost finished)
More for Solver Kilominx
Improvements to the Solver: remove redundant moves per-whole phase, not per subphases.
Improvements to the Phased Solver app
Beginnings of SolverKilominx
bugfix
Finally! Split TwistyObject into:
- lower class 'TwistyObjectTheoretical' (an object that has no mesh, no stickers, cannot be touch-controlled, but knows how a real object of its kind moves - so can be used e.g. in solvers)
- everything else above it.
In the future, the 'everything else' will be further slipt into...
improve the way Crazy Puzzles are done: JSON files
improve the way Crazy Puzzles are done (this does not depend on mShapes anymore)
First stage of the planned split of the giant TwistyObject class into (at first!) two: TwistyObjectTheoretical (a 'theoretical' object which moves just like the real one, but which has no mesh, stickers, shapes, node and cannot be controlled) and everything else.
Clean up SolvedObject's API.
Minor.
Introduce SolutionListener interface which permits to send solutions phase-by-phase. Time time keeping to the app.
Improve the Phased Solver App (show phases)
bugfix - MoveProviders (Algs with a regex) can return null moves (if the regex evaluates to empty)
Improve SOlver3x3Beginner
Abstract out Solver3x3Beginner - the first implemented Phased Solver.
3x3 Beginner should be finished. Everything seems to work, and work fast.
Still some fixes.
All phases of the 3x3 beginner (seem to) work now.
Fixes. OLL (edges) works now, PLL (edges) still does not.
branching foctor does not depend on SolvedObject, but on MoveProvider.
Clean up everything.Algorithmic MoveProviders do nto seem to work yet. (3x3 Beginner's OLL phase does not work)
clean up TargetQuats API
Bugfixes
remove debugging
Phased Solver app: debugging
Progress with PhasedSolver.Introduce an abstracted TargetQuats.
Progress with PhasedSolver.Turns out 3x3 beginner phase 3 can still fail.
3x3 beginner should 'mostly' work now (the 'perm of the LL corners' phase can still fail - we need to define appropriate PhaseRegex here)
Initial support for PhaseRegex. What remains is to implement the actual regular expression engine - class MoveRegex.
Seriously re-structure the architecture in preparation for different types of Phases (PhaseRegex!)
Bugfix for the cyclic phases - yellow cross works now.
Make the Phases more generic - now subphases can contain any subsets of the cubits involved in the whole phase.
Solving the white cross and white corners do work now.
Solving the white cross works now.
PhasedSolver app: bugfixes.
Lots of bugfixes. Solving the white cross rotated by one move works now.
bugfixes
various bugfixes for the PhasedSolver (solving an already solved position works now!)
various bugfixes for the PhasedSolver (doesn't work yet)
packing / unpacking the MitmTable is implemented and tested now.
progress with solver
Phased solver should be finished.Now: define the first solver (3x3 single phase - white cross) and debug.
progress with algorithmic solvers
major speedup of SolvedObject