summaryrefslogtreecommitdiff
path: root/src/engine/placeLinks.js
diff options
context:
space:
mode:
authornil <niljo@airmail.cc>2024-12-14 21:38:07 +0100
committernil <niljo@airmail.cc>2024-12-14 21:38:07 +0100
commitadd682d6aaa50b2c1561731cdb1696bf7665cba3 (patch)
tree81bbb91e40d3aa537f41ab884ff4f7dd13d113c9 /src/engine/placeLinks.js
parent1b6275b4fbc4ab7bcd876938f807aad9ce1900a6 (diff)
liberty fix and tidying code
Diffstat (limited to 'src/engine/placeLinks.js')
-rw-r--r--src/engine/placeLinks.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/engine/placeLinks.js b/src/engine/placeLinks.js
new file mode 100644
index 0000000..07d67d3
--- /dev/null
+++ b/src/engine/placeLinks.js
@@ -0,0 +1,38 @@
+import { board } from "../board.js"
+import { Vector2 } from "../engine/vector2.js"
+import { Link } from "../link.js"
+import { isMoveLegal } from "../engine/moves.js"
+import { playerTurn } from "../engine/turns.js"
+
+export function placeLinks() {
+ resetLink()
+ board.links = [...Array(board.size)].map(_ => Array(board.size))
+ for (let row = 0; row < board.size; row++) {
+ for (let col = 0; col < board.size; col++) {
+ tryLink(new Vector2(row, col))
+ }
+ }
+}
+
+function resetLink() {
+ Array.from(board.links).forEach(x => {
+ Array.from(x)
+ .filter((x) => x !== undefined)
+ .map(y => {
+ y.removeLink()
+ })
+ })
+}
+
+function tryLink(position) {
+ if (!isMoveLegal({
+ position: position,
+ team: playerTurn
+ })) {
+ return
+ }
+
+ new Link({
+ position: position,
+ })
+}