diff --git a/src/lib/chess/utils.ts b/src/lib/chess/game.ts similarity index 100% rename from src/lib/chess/utils.ts rename to src/lib/chess/game.ts diff --git a/src/lib/chess/types.ts b/src/lib/chess/types.ts index dde6bce..4db0114 100644 --- a/src/lib/chess/types.ts +++ b/src/lib/chess/types.ts @@ -1,17 +1,46 @@ -import { Game } from "./utils"; +import { Game } from "./game"; export type GameListener = (board: Game) => void; -export enum Piece { - EMPTY = 0, - KING = 1, - QUEEN = 2, - ROOK = 3, - BISHOP = 4, - KNIGHT = 5, - PAWN = 6, +export enum MoveFlag { + NORMAL = 0, + PAWN_DOUBLE = 1, + EN_PASSANT = 2, + CASTLE_KING = 3, + CASTLE_QUEEN = 4, + PROMOTION = 5, + CAPTURE = 6, + CAPTURE_PROMOTE = 7, +} - WHITE = 8, - BLACK = 16, +export enum Promotion { + QUEEN = 0, + ROOK = 1, + BISHOP = 2, + KNIGHT = 3, +} + +export enum Capture { + NONE = 0, + PAWN = 1, + KNIGHT = 2, + BISHOP = 3, + ROOK = 4, + QUEEN = 5, +} + +export enum Piece { + // bit 0-2: piece type (0-6) + EMPTY = 0, + QUEEN = 1, + ROOK = 2, + BISHOP = 3, + KNIGHT = 4, + PAWN = 5, + KING = 6, + + // bit 3: color (0-1) + WHITE = 0<<3, + BLACK = 1<<3, } export const CHAR_TO_PIECE: Record = { diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index ea6797a..51577d3 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,6 +1,6 @@