nissy-core

The "engine" of nissy, including the H48 optimal solver.
git clone https://git.tronto.net/nissy-core
Download | Log | Files | Refs | README | LICENSE

commit 8dcdfd23ef6fedf89b8a485f6bb54974e5077881
parent 238702e7dd860af59d22f33cbfe163f28c3beb4e
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Sun, 25 May 2025 12:12:38 +0200

Oops forgot to add these files

Diffstat:
Aweb/http/solve.mjs | 33+++++++++++++++++++++++++++++++++
Aweb/http/worker.mjs | 11+++++++++++
2 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/web/http/solve.mjs b/web/http/solve.mjs @@ -0,0 +1,33 @@ +var solveButton = document.getElementById("solveButton"); +var scrField = document.getElementById("scrambleText"); +var solutionText = document.getElementById("solution"); +var solverSelector = document.getElementById("solverSelector"); + +var worker = new Worker("./worker.mjs", { type: "module" }); +worker.onmessage = (e) => { + updateResults(e.data); + enableSolveButton(); +}; + +function updateResults(s) { + solutionText.innerText = s; +} + +function disableSolveButton() { + solveButton.disabled = true; + solveButton.innerText = "Solving..."; +} + +function enableSolveButton() { + solveButton.disabled = false; + solveButton.innerText = "Solve!"; +} + +solveButton.addEventListener("click", () => { + disableSolveButton(); + updateResults("Loading solutions..."); + worker.postMessage({ + solver: solverSelector.options[solverSelector.selectedIndex].value, + scramble: scrField.value + }); +}); diff --git a/web/http/worker.mjs b/web/http/worker.mjs @@ -0,0 +1,11 @@ +import Nissy from "./nissy_web_module.mjs" + +const nissy = await Nissy(); +nissy.setLogger(nissy._addCallbackFunction(console.log)); + +onmessage = (e) => { + var cube = new nissy.Cube(); + cube.move(e.data.scramble); + nissy.solve(e.data.solver, cube, nissy.NissFlag.normal, 0, 17, 1, 99, 4, -1) + .then((sol) => postMessage(sol)) +};