diff options
author | nil <niljo@airmail.cc> | 2024-12-14 21:38:07 +0100 |
---|---|---|
committer | nil <niljo@airmail.cc> | 2024-12-14 21:38:07 +0100 |
commit | add682d6aaa50b2c1561731cdb1696bf7665cba3 (patch) | |
tree | 81bbb91e40d3aa537f41ab884ff4f7dd13d113c9 /src/engine/placeLinks.js | |
parent | 1b6275b4fbc4ab7bcd876938f807aad9ce1900a6 (diff) |
liberty fix and tidying code
Diffstat (limited to 'src/engine/placeLinks.js')
-rw-r--r-- | src/engine/placeLinks.js | 38 |
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, + }) +} |