commit f74438386c6ba50cba75de93040c5230dac99359
parent 37a2ebd4bffa99d465396fde0acfc52284ee3b7c
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date: Fri, 30 May 2025 14:18:58 +0200
Added last option to solver configuration web version
Diffstat:
2 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/web/http/index.html b/web/http/index.html
@@ -35,7 +35,11 @@
<br />
<label for="maxSolutions">Limit number of solutions to</label>
<input id="maxSolutions" name="maxSolutions"
- type="number" min="1" max="999" value="1">
+ type="number" min="1" max="999" value="1" />
+ <br />
+ <label for="optimalInput">Above optimal by at most</label>
+ <input id="optimalInput" name="optimal"
+ type="number" min="0" max="20" value="20" />
</div>
<div id="confirmDownload" style="display:none">
diff --git a/web/http/nissyapp.mjs b/web/http/nissyapp.mjs
@@ -16,6 +16,7 @@ var maxSlider = document.getElementById("maxMovesSlider");
var minLabel = document.getElementById("minLabel");
var maxLabel = document.getElementById("maxLabel");
var maxSolsInput = document.getElementById("maxSolutions");
+var optimalInput = document.getElementById("optimalInput");
var solveStatus = "run"; // For now this is global
var lastCallbackId = 0;
@@ -50,6 +51,7 @@ function updateResults(label, results, enable) {
minSlider.disabled = !enable;
maxSlider.disabled = !enable;
maxSolsInput.disabled = !enable;
+ optimalInput.disabled = !enable;
}
scrField.addEventListener("input", (e) => {
@@ -80,14 +82,17 @@ minSlider.addEventListener("input", () =>
maxSlider.addEventListener("input", () =>
maxLabel.innerText = "Maximum moves: " + maxSlider.value);
-maxSolsInput.addEventListener("keyup", () => {
- if (maxSolsInput.value != "") {
- if (parseInt(maxSolsInput.value) < parseInt(maxSolsInput.min))
- maxSolsInput.value = maxSolsInput.min;
- if (parseInt(maxSolsInput.value) > parseInt(maxSolsInput.max))
- maxSolsInput.value = maxSolsInput.max;
+function enforceMinMax() {
+ if (this.value != "") {
+ if (parseInt(this.value) < parseInt(this.min))
+ this.value = this.min;
+ if (parseInt(this.value) > parseInt(this.max))
+ this.value = this.max;
}
-});
+}
+
+maxSolsInput.addEventListener("keyup", enforceMinMax);
+optimalInput.addEventListener("keyup", enforceMinMax);
var logVisible = false;
toggleLog.addEventListener("click", () => {
@@ -265,7 +270,7 @@ function startSolve(solver, scramble) {
minmoves: minSlider.value,
maxmoves: maxSlider.value,
maxsolutions: maxSolsInput.value,
- optimal: 20,
+ optimal: optimalInput.value,
threads: window.navigator.hardwareConcurrency,
}
});