From fcc78c3384cf06fd6e0b4c904d73a072f319b2c9 Mon Sep 17 00:00:00 2001 From: Jordan Baumann <0501jordanb@gmail.com> Date: Thu, 25 Sep 2025 20:25:15 -0400 Subject: [PATCH] Added simple implementation of getMovesFrom in Piece that uses a set. --- src/shared/piece/piece.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/shared/piece/piece.ts b/src/shared/piece/piece.ts index 0e70f59..579030e 100644 --- a/src/shared/piece/piece.ts +++ b/src/shared/piece/piece.ts @@ -8,7 +8,18 @@ export class Piece { private patterns: Move_Pattern[] ){} - public getMovesFrom(Board: Board, piece: Piece_Ref): Move[] { - throw new Error("Unimplemented"); + public getMovesFrom(board: Board, piece: Piece_Ref): Move[] { + // Uses a set to remove duplicates + let total_moves: Set = new Set(); + + for (let move_pattern of this.patterns) { + let new_moves = move_pattern.getMatches(board, piece); + // Adds each new move into total moves + // total_moves is a set this will remove duplicates for free + new_moves.forEach(total_moves.add, total_moves); + } + + // Converts set back to array for easier use later + return Array.from(total_moves); } }