From 372a3400249225ab505f45e746d2f20b6941a272 Mon Sep 17 00:00:00 2001 From: Josue Zamudio Date: Sat, 21 Mar 2026 01:41:13 +0000 Subject: [PATCH] Fix initial pieces to use shared queue in startGame All players now receive the same first two pieces from the shared piece queue, with sequence index starting at 2. Co-Authored-By: Claude Opus 4.6 --- server/index.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/server/index.js b/server/index.js index b59f2d5..f2a42f5 100644 --- a/server/index.js +++ b/server/index.js @@ -492,12 +492,6 @@ function startGame() { // Initialize shared piece queue lobby.pieceQueue = createPieceQueue(14); // 98 pieces (~14 bags) - // Initialize sequence index for each player - lobby.playerSequenceIndex.clear(); - for (const player of lobby.players.values()) { - lobby.playerSequenceIndex.set(player.id, 0); - } - for (const player of lobby.players.values()) { player.board = createEmptyBoard(); player.score = 0; @@ -507,8 +501,18 @@ function startGame() { player.dropInterval = 1000; player.holdPiece = null; player.canHold = true; - player.currentPiece = getRandomPiece(); - player.nextPiece = getRandomPiece(); + lobby.playerSequenceIndex.set(player.id, 0); + } + + // Assign first two pieces from queue to all players + const firstPieceType = lobby.pieceQueue[0]; + const secondPieceType = lobby.pieceQueue[1]; + + for (const player of lobby.players.values()) { + player.currentPiece = getPieceFromType(firstPieceType); + player.nextPiece = getPieceFromType(secondPieceType); + // Advance all players to index 2 since we've used first two pieces + lobby.playerSequenceIndex.set(player.id, 2); } lobby.gameInterval = setInterval(() => gameTick(), 50);