dao-game / commit
Slight refactoring.
src/local-game.ts | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/src/local-game.ts b/src/local-game.ts index 531ffb3..1b2dcda 100644 --- a/src/local-game.ts +++ b/src/local-game.ts @@ -9,7 +9,6 @@ const classNames = { possibleMove: "possible-move", }; - let selectedPiece: Element | null = null; const game: IGame = new Game('Red', 'Blue'); const listenerManager: ListenerManager = new ListenerManager(); @@ -18,28 +17,14 @@ const listenerManager: ListenerManager = new ListenerManager(); const dom = { defaultP1Piece: document.getElementById("default-p1-piece"), defaultP2Piece: document.getElementById("default-p2-piece"), + resetButton: document.getElementById("reset-button") as HTMLInputElement, + undoButton: document.getElementById("undo-button") as HTMLInputElement, cells: () => Array.from(document.querySelectorAll("td")), allPieces: () => Array.from(document.querySelectorAll(".piece")), - playerPieces: (isP1Turn: boolean) => isP1Turn - ? Array.from(document.querySelectorAll(".p1-piece:not(#default-p1-piece)")) - : Array.from(document.querySelectorAll(".p2-piece:not(#default-p2-piece)")), p1TurnText: () => Array.from(document.querySelectorAll(".p1-turn-text")), p2TurnText: () => Array.from(document.querySelectorAll(".p2-turn-text")), - resetButton: document.getElementById("reset-button") as HTMLInputElement, - undoButton: document.getElementById("undo-button") as HTMLInputElement, }; -const getPieceAtIndex = (index: number): Element => { - const cell = dom.cells()[index]; - const piece = cell.children[0]; - return piece; -} -const getPieceAtCoord = (coord: Coord): Element => { - const index = game.coordToBoardIndex(coord); - const piece = getPieceAtIndex(index); - return piece; -} - const resetBoard = () => { // reset Cells dom.cells().forEach(cell => cell.classList.remove(classNames.possibleMove)); @@ -136,8 +121,14 @@ const nextMove = () => { }; // mark active pieces + const allCells = dom.cells(); const playerPositions = game.getPlayerPositions(game.currentPlayerId === game.player1Id); - const piecesAndPositions = playerPositions.map(coord => ({ coord, piece: getPieceAtCoord(coord) })); + const piecesAndPositions = playerPositions.map(coord => { + const index = game.coordToBoardIndex(coord); + const cell = allCells[index]; + const piece = cell.children[0]; + return { coord, piece }; + }); piecesAndPositions .forEach(({ coord, piece }) => { piece.classList.add(classNames.activePlayerPiece);