diff --git a/src/pages/Breakout.tsx b/src/pages/Breakout.tsx index 2faa72a..fa18f82 100644 --- a/src/pages/Breakout.tsx +++ b/src/pages/Breakout.tsx @@ -267,16 +267,50 @@ const Breakout = () => { {!isMobile && ( -
-

SCORE

{score.toLocaleString()}

-

HIGH SCORE

{highScore.toLocaleString()}

max: 4,294,967,296

-

LEVEL

{level}

-

LIVES

{'♥'.repeat(lives)}

-

CONTROLS

← → / A D

P: Pause

+
+ {/* Score Panel */} +
+

Score

+

{score.toLocaleString()}

+
+ + {/* High Score */} +
+

High Score

+

{highScore.toLocaleString()}

+

max: 4,294,967,296

+
+ + {/* Level & Lives */} +
+
+

Level

+

{level}

+
+
+

Lives

+

{'♥'.repeat(lives)}

+
+
+ + {/* Controls */} +
+

Controls

+
+

← → / A D

+

P: Pause

+
+
+ + {/* Action Button */} {!gameStarted || gameOver ? ( - + ) : ( - + )}
)} diff --git a/src/pages/Games.tsx b/src/pages/Games.tsx index 956270d..3b3b052 100644 --- a/src/pages/Games.tsx +++ b/src/pages/Games.tsx @@ -63,25 +63,27 @@ const Games = () => { transition={{ duration: 0.5 }} className="flex flex-col h-full" > -
+ {/* Header */} +
-

+

-

- Select a game. High scores saved locally. +

+ Select a game to play. High scores saved locally.

- - Leaderboard + + Leaderboard
-
+ {/* Game Grid */} +
{games.map((game, index) => ( { animate={{ opacity: 1, y: 0 }} transition={{ delay: index * 0.1 }} > - -
-
-                  {game.ascii}
-                
-

- -

-

- {game.description} -

+ +
+ {/* ASCII Preview */} +
+
+                    {game.ascii}
+                  
+
+ + {/* Game Info */} +
+

+ +

+

+ {game.description} +

+
+ + {/* Multiplayer Badge */} {game.hasMultiplayer && ( - + 2P )} @@ -111,11 +122,15 @@ const Games = () => { ))}
-
+ {/* Footer */} +

{'>'} Max score: 4,294,967,296 (uint32 overflow)

+

+ Arrow keys / WASD to control +

); diff --git a/src/pages/Pacman.tsx b/src/pages/Pacman.tsx index 129b557..c6c5c05 100644 --- a/src/pages/Pacman.tsx +++ b/src/pages/Pacman.tsx @@ -604,57 +604,97 @@ const Pacman = () => {
{!isMobile && ( -
+
+ {/* Score Panel */} {gameMode === '2p' ? ( -
-

SCORES

-
-

P1

{score.toLocaleString()}

-

P2

{score2.toLocaleString()}

+
+

Scores

+
+
+

P1

+

{score.toLocaleString()}

+
+
+

P2

+

{score2.toLocaleString()}

+
) : ( -

SCORE

{score.toLocaleString()}

- )} -

HIGH SCORE

{highScore.toLocaleString()}

max: 4,294,967,296

-

LEVEL

{level}

- {gameMode === '2p' && ( -
-

LIVES

-
-

P1

{lives}

-

P2

{lives2}

-
+
+

Score

+

{score.toLocaleString()}

)} - {gameMode === '1p' && ( -

LIVES

{lives}

- )} -
-

CONTROLS

+ + {/* High Score */} +
+

High Score

+

{highScore.toLocaleString()}

+

max: 4,294,967,296

+
+ + {/* Level & Lives */} +
+
+

Level

+

{level}

+
{gameMode === '2p' ? ( - <> -

P1: WASD / ←→↑↓

-

P2: I J K L

-

P: Pause

- +
+

Lives

+
+ {lives} + / + {lives2} +
+
) : ( - <> -

WASD / ←→↑↓

-

P: Pause

- +
+

Lives

+

{'♥'.repeat(lives)}

+
)}
+ + {/* Controls */} +
+

Controls

+ {gameMode === '2p' ? ( +
+
+

P1

+

WASD

+
+
+

P2

+

IJKL

+
+
+ ) : ( +
+

WASD / ←→↑↓

+

P: Pause

+
+ )} + {gameMode === '2p' &&

P: Pause

} +
+ + {/* Action Buttons */} {showModeSelection ? (
-

SELECT MODE

- - +

Select Mode

+ +
) : !gameStarted || gameOver || gameComplete ? ( - + ) : ( - + )}
)} diff --git a/src/pages/Snake.tsx b/src/pages/Snake.tsx index 234c556..b836980 100644 --- a/src/pages/Snake.tsx +++ b/src/pages/Snake.tsx @@ -546,31 +546,42 @@ const Snake = () => {
{!isMobile && gameMode === '1p' && ( -
-
-

SCORE

-

{score.toLocaleString()}

+
+ {/* Score Panel */} +
+

Score

+

{score.toLocaleString()}

-
-

HIGH SCORE

-

{highScore.toLocaleString()}

-

max: 4,294,967,296

+ + {/* High Score Panel */} +
+

High Score

+

{highScore.toLocaleString()}

+

max: 4,294,967,296

-
-

LENGTH

-

{snake.length}

+ + {/* Stats */} +
+

Length

+

{snake.length}

-
-

CONTROLS

-

← → ↑ ↓ / WASD

-

P: Pause

+ + {/* Controls */} +
+

Controls

+
+

← → ↑ ↓ / WASD

+

P: Pause

+
+ + {/* Action Button */} {!gameStarted || gameOver || gameComplete ? ( - ) : ( - )} @@ -578,38 +589,52 @@ const Snake = () => { )} {!isMobile && gameMode === '2p' && ( -
-
-
-
-

P1 (WASD)

+
+ {/* Player 1 */} +
+
+
+

Player 1

+ WASD
-

{players[0].score}

- {!players[0].alive &&

DEAD

} +

{players[0].score}

+ {!players[0].alive &&

☠ ELIMINATED

}
-
-
-
-

P2 (↑↓←→)

+ {/* Player 2 */} +
+
+
+

Player 2

+ Arrows
-

{players[1].score}

- {!players[1].alive &&

DEAD

} +

{players[1].score}

+ {!players[1].alive &&

☠ ELIMINATED

}
-
-

CONTROLS

-

P1: W A S D

-

P2: ↑ ↓ ← →

-

P: Pause

+ {/* Controls Summary */} +
+

Controls

+
+
+

P1

+

W A S D

+
+
+

P2

+

↑ ↓ ← →

+
+
+

P: Pause

+ {/* Action Button */} {!gameStarted || gameOver ? ( - ) : ( - )} diff --git a/src/pages/Tetris.tsx b/src/pages/Tetris.tsx index 6339b0e..c99ea02 100644 --- a/src/pages/Tetris.tsx +++ b/src/pages/Tetris.tsx @@ -603,27 +603,61 @@ const Tetris = () => { <>
{renderBoard1P()}
{!isMobile && ( -
-
-

NEXT

-
- {nextPiece.shape.map((row, y) => ( -
- {row.map((val, x) => ( -
- ))} -
- ))} +
+ {/* Next Piece Preview */} +
+

Next

+
+
+ {nextPiece.shape.map((row, y) => ( +
+ {row.map((val, x) => ( +
+ ))} +
+ ))} +
-

SCORE

{score.toLocaleString()}

-

HIGH SCORE

{highScore.toLocaleString()}

max: 4,294,967,296

-

LINES

{lines}

-

CONTROLS

← → ↑ ↓ / WASD

Space: Drop

P: Pause

+ + {/* Score Panel */} +
+

Score

+

{score.toLocaleString()}

+
+ + {/* High Score */} +
+

High Score

+

{highScore.toLocaleString()}

+

max: 4,294,967,296

+
+ + {/* Lines */} +
+

Lines

+

{lines}

+
+ + {/* Controls */} +
+

Controls

+
+

← → ↑ ↓ / WASD

+

Space: Hard Drop

+

P: Pause

+
+
+ + {/* Action Button */} {!gameStarted || gameOver || gameComplete ? ( - + ) : ( - + )}
)}