summaryrefslogtreecommitdiff
path: root/euler-golf/js/controls.js
diff options
context:
space:
mode:
authorLizzy Hunt <loganhunt@simponic.xyz>2023-02-24 15:02:20 -0700
committerGitHub <noreply@github.com>2023-02-24 15:02:20 -0700
commit445af5d0be53375355b9dad02510f6b331fd99ec (patch)
treec9012d8108d3803bbeb8178163210b482188ff3c /euler-golf/js/controls.js
parent93c8bbeb6a0b3574cb66c25656e4da6d0b936a66 (diff)
downloadsimponic.xyz-445af5d0be53375355b9dad02510f6b331fd99ec.tar.gz
simponic.xyz-445af5d0be53375355b9dad02510f6b331fd99ec.zip
Euler golf (#1)
Diffstat (limited to 'euler-golf/js/controls.js')
-rw-r--r--euler-golf/js/controls.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/euler-golf/js/controls.js b/euler-golf/js/controls.js
new file mode 100644
index 0000000..d89c53d
--- /dev/null
+++ b/euler-golf/js/controls.js
@@ -0,0 +1,32 @@
+const directions_modal = new Modal({
+ el: document.getElementById("directions-modal"),
+});
+
+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());