From eb460fbb161e76052b7bdd2c57afc65e2e99bc2e Mon Sep 17 00:00:00 2001 From: niliara-edu Date: Thu, 12 Dec 2024 13:51:59 +0100 Subject: place pieces --- src/stone.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/stone.js (limited to 'src/stone.js') diff --git a/src/stone.js b/src/stone.js new file mode 100644 index 0000000..5203fed --- /dev/null +++ b/src/stone.js @@ -0,0 +1,43 @@ +import { placeOnBoard } from "./engine/visual/placeOnBoard.js" +import { Vector2 } from "./engine/visual/vector2.js" +import { board } from "./board.js" +import { ASSETS_BLACK, ASSETS_WHITE, PLAYER } from "./constants.js" + + + +export class Stone { + constructor({ + team = PLAYER.BLACK, + position = new Vector2(0, 0), + }) { + this.team = team + this.position = position + + this.create_span() + board.stones[position.y][position.x] = this + + this.update() + } + + create_span() { + this.span = document.createElement("span") + this.span.className = `stone` + + let img = document.createElement("img") + img.src = this.team == PLAYER.BLACK ? ASSETS_BLACK : ASSETS_WHITE + this.span.appendChild(img) + + document.body.appendChild(this.span) + } + + update() { + let response = placeOnBoard({ + position: this.position, + board_size: board.size, + }) + + this.span.style.left = response.left + this.span.style.top = response.top + this.span.style.width = this.span.style.height = response.size + } +} -- cgit v1.2.3