summaryrefslogtreecommitdiff
path: root/src/toys/euler-golf/js/controls.js
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2026-01-07 19:29:30 -0800
committerElizabeth Hunt <me@liz.coffee>2026-01-07 19:29:30 -0800
commit91b7598b22f89319f64054daf42c950de3eb6451 (patch)
treeb337ad01c75e7ee88f287eda05522e72dd9a8dd5 /src/toys/euler-golf/js/controls.js
parent49012297ea792a69501b74d8d83bd4be44d177da (diff)
downloadlizdotcoffee-91b7598b22f89319f64054daf42c950de3eb6451.tar.gz
lizdotcoffee-91b7598b22f89319f64054daf42c950de3eb6451.zip
Adding some of my favorite toys
Diffstat (limited to 'src/toys/euler-golf/js/controls.js')
-rw-r--r--src/toys/euler-golf/js/controls.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/toys/euler-golf/js/controls.js b/src/toys/euler-golf/js/controls.js
new file mode 100644
index 0000000..7f606cc
--- /dev/null
+++ b/src/toys/euler-golf/js/controls.js
@@ -0,0 +1,33 @@
+document
+ .getElementById("controls-container")
+ .addEventListener("mouseover", () => {
+ document.getElementById("controls").style.display = "block";
+ document.getElementById("expand-show").style.display = "none";
+ });
+
+document
+ .getElementById("controls-container")
+ .addEventListener("mouseout", () => {
+ document.getElementById("controls").style.display = "none";
+ document.getElementById("expand-show").style.display = "inline";
+ });
+
+document.getElementById("reset").addEventListener("click", () => {
+ state = reset_state(state);
+
+ state.target = rand_target(state.rows, state.cols);
+});
+
+document.getElementById("solve").addEventListener("click", () => {
+ if (!cx.eq(state.path.at(-2), new cx(0, 0))) state = reset_state(state);
+
+ state.solution = sol(state.target);
+});
+
+document
+ .getElementById("directions")
+ .addEventListener("click", () => directions_modal.show());
+
+document.getElementById("gap").addEventListener("input", function () {
+ state.changes.gap = Number(this.value);
+});