From b9b7937a961b6779cba81374c78332b15a4277ea Mon Sep 17 00:00:00 2001 From: satr14 Date: Sat, 25 Jul 2026 21:56:38 +0700 Subject: [PATCH 1/6] optimize to use 1 less bit for color --- src/lib/chess/types.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/chess/types.ts b/src/lib/chess/types.ts index dde6bce..e033ad7 100644 --- a/src/lib/chess/types.ts +++ b/src/lib/chess/types.ts @@ -2,6 +2,7 @@ import { Game } from "./utils"; export type GameListener = (board: Game) => void; export enum Piece { + // bit 0-2: piece type (0-6) EMPTY = 0, KING = 1, QUEEN = 2, @@ -10,8 +11,9 @@ export enum Piece { KNIGHT = 5, PAWN = 6, - WHITE = 8, - BLACK = 16, + // bit 3: color (0-1) + WHITE = 0, + BLACK = 8, } export const CHAR_TO_PIECE: Record = { From 125356d3219b68ea1633c81d25abb021fd08348c Mon Sep 17 00:00:00 2001 From: satr14 Date: Sun, 26 Jul 2026 08:35:41 +0700 Subject: [PATCH 2/6] use bit shifts --- src/lib/chess/types.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/chess/types.ts b/src/lib/chess/types.ts index e033ad7..7f943e9 100644 --- a/src/lib/chess/types.ts +++ b/src/lib/chess/types.ts @@ -12,8 +12,8 @@ export enum Piece { PAWN = 6, // bit 3: color (0-1) - WHITE = 0, - BLACK = 8, + WHITE = 0<<3, + BLACK = 1<<3, } export const CHAR_TO_PIECE: Record = { From 3f9c5afb6bfd1506debdc88a2e90289a7d872671 Mon Sep 17 00:00:00 2001 From: satr14 Date: Sun, 26 Jul 2026 09:10:38 +0700 Subject: [PATCH 3/6] rename to game.ts --- src/lib/chess/{utils.ts => game.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/lib/chess/{utils.ts => game.ts} (100%) 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 From fb70f9ab1b37eb22d0054b3074a96e466e8fa122 Mon Sep 17 00:00:00 2001 From: satr14 Date: Sun, 26 Jul 2026 09:19:02 +0700 Subject: [PATCH 4/6] update imports --- src/lib/chess/types.ts | 2 +- src/routes/+page.svelte | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/chess/types.ts b/src/lib/chess/types.ts index 7f943e9..679d494 100644 --- a/src/lib/chess/types.ts +++ b/src/lib/chess/types.ts @@ -1,4 +1,4 @@ -import { Game } from "./utils"; +import { Game } from "./game"; export type GameListener = (board: Game) => void; export enum Piece { 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 @@