Commit Graph
85 Commits
Author SHA1 Message Date
tiennm99 29b7204687 docs: complete Epic 2 — Story 2.3 keep-playing verified, no code changes
All Story 2.3 ACs already satisfied by Stories 1.2, 1.6, and 2.2.
Keep-playing mode works: flag persists across sessions, win overlay
suppressed, game over still triggers. Epic 2 done.
2026-04-13 22:45:59 +07:00
tiennm99 ccdc8f921d feat: add game state persistence with localStorage (Story 2.2)
Game state saved after every move, restored on page load. Best score
persisted separately. New Game clears game state but preserves best
score. Schema validation prevents crashes from corrupted localStorage.
49 tests passing (11 new storage tests).
2026-04-13 22:44:56 +07:00
tiennm99 32647a636f feat: add best score tracking (Story 2.1)
Best score updates when current score exceeds it and persists
across New Game resets within the session. localStorage persistence
comes in Story 2.2.
2026-04-13 22:37:12 +07:00
tiennm99 6b621401d7 docs: complete Epic 1 review, create story 2.1 best score tracking
Epic 1 code review passed with 0 patches needed — all 6 stories
marked done. 6 deferred items logged for Epics 2-5. Created story
2-1-best-score-tracking as ready-for-dev to begin Epic 2.
2026-04-13 22:28:15 +07:00
tiennm99 f264073130 feat: add header, scores, keyboard input, and overlays (Stories 1.4-1.6)
ScoreBoard shows current/best score. Keyboard arrow keys control
gameplay via input-handler module. GameMessage overlay shows win/game
over states with Keep Going, Try Again, and New Game actions.
2026-04-13 21:52:31 +07:00
tiennm99 dc37d182e6 feat: add game board and tile rendering (Story 1.3)
Grid.svelte renders 4x4 board with empty cell placeholders.
Tile.svelte renders colored numbered tiles with absolute positioning
and ARIA roles. App.svelte owns game state via Svelte 5 $state rune.
2026-04-13 21:48:21 +07:00
tiennm99 90223ea21c feat: implement game logic module with 38 tests (Story 1.2)
Pure JS game engine with initGame, move, canMove, isGameOver.
Implements leading-edge merge order, once-per-move rule, 90/10 tile
spawning, win detection (2048), and immutable state updates.
2026-04-13 21:41:30 +07:00
tiennm99 d68f600ce8 feat: scaffold Svelte + Tailwind + Vite project (Story 1.1)
Initialize project with Svelte 5, Vite 8, Tailwind CSS v4, and Vitest.
Set up folder structure (src/lib, src/components, public/fonts),
constants module with game values and 12-tier tile colors, Clear Sans
font, and page background styling.
2026-04-13 21:35:26 +07:00
tiennm99 fbdf22fdfb docs: create story 1.1 project scaffold and update sprint status
Epic 1 now in-progress, Story 1.1 ready-for-dev with comprehensive
implementation guide for Svelte + Tailwind + Vite project setup.
2026-04-13 20:16:34 +07:00
tiennm99 a585baeaf9 docs: add sprint status tracking for 5 epics and 20 stories
All stories in backlog status, ready for implementation starting
with Epic 1 Story 1.1 (project scaffold).
2026-04-13 20:14:43 +07:00
tiennm99 68a430b738 docs: add implementation readiness assessment report
All 6 validation categories passed: 31/31 FRs covered, full UX
alignment, no critical issues. Project is ready for sprint planning.
2026-04-13 20:13:00 +07:00
tiennm99 0fa546dc90 docs: add epics and stories breakdown for 2048 clone
5 epics, 20 stories covering all 31 functional requirements,
9 NFRs, and 20 UX design requirements.
2026-04-13 19:52:41 +07:00
tiennm99 ca53aa1d9a docs: add architecture decision document
Complete 8-step architecture workflow covering project context,
starter template evaluation (Svelte 5 + Vite 9 + Tailwind v4),
core decisions, implementation patterns, project structure,
and validation. Ready for implementation.
2026-04-13 00:31:04 +07:00
tiennm99 dc75113be4 docs: add UX design specification and design direction mockups
Complete 14-step UX design workflow covering project understanding,
core experience, emotional response, visual foundation, user journeys,
component strategy, UX patterns, and responsive/accessibility strategy.
2026-04-12 23:37:55 +07:00
tiennm99 2ff16625e1 docs: add project scoping and phased development plan to PRD 2026-04-12 20:26:07 +07:00
tiennm99 62173d5dce docs: add web app specific requirements to PRD 2026-04-12 20:22:27 +07:00
tiennm99 ff2d8be091 docs: skip domain and innovation steps in PRD (low complexity, no innovation) 2026-04-12 20:20:12 +07:00
tiennm99 b2d466ed84 docs: add user journeys to PRD 2026-04-12 20:18:59 +07:00
tiennm99 4be3ca32bb docs: add success criteria and product scope to PRD 2026-04-12 20:17:03 +07:00
tiennm99 13fccb518d docs: add executive summary and project classification to PRD 2026-04-12 20:14:49 +07:00
tiennm99 d9bd2c50e9 docs: add project classification and vision discovery to PRD 2026-04-12 20:00:55 +07:00
tiennm99 5f3bd05b08 docs: initialize PRD with workflow state and input documents 2026-04-12 19:58:01 +07:00
tiennm99 660451aad2 docs: finalize brainstorming session with idea organization and implementation roadmap 2026-04-12 19:55:50 +07:00
tiennm99 c7e332a3dc chore: remove completed spec files
These implementation specs served their purpose and the features
are all merged — no longer needed in the repo.
2026-04-12 19:53:57 +07:00
tiennm99 01b562cf77 docs: add morphological analysis and finalize tech stack decisions 2026-04-12 19:45:48 +07:00
tiennm99 a5cf942fda docs: add first principles and mind mapping results to brainstorming session 2026-04-12 19:27:40 +07:00
tiennm99 b26bafba8a docs: add 2048 game brainstorming session with first principles research 2026-04-12 19:26:15 +07:00
tiennm99 5478d8b3ab ci: add GitHub Actions workflow to deploy to GitHub Pages
Add deploy.yml workflow that runs tests, builds, and deploys to
GitHub Pages on push to main. Add vite.config.js with base path
for subdirectory hosting. Include deployment spec.
2026-04-12 19:07:02 +07:00
tiennm99 eb724f3385 fix: floor misaligned with container walls causing fall-through
The floor was centered on CANVAS_WIDTH/2 but the container is no longer
centered in the canvas (NEXT panel on right). This created a 26px gap
at the bottom-left corner. Center floor on CONTAINER_X + CONTAINER_WIDTH/2
to match the walls. Also display fruit tier numbers instead of names.
2026-04-12 18:24:19 +07:00
tiennm99 4b9dd235ad chore: add BMad Builder module and Claude skills configuration 2026-04-12 18:18:07 +07:00
tiennm99 5194b6bf66 fix: NEXT panel clipping, add labels to previews, improve fruit colors
Derive canvas width from container + panel dimensions so the NEXT panel
fits with consistent padding. Extract drawFruitCircle helper so all
fruit rendering (in-game, cursor preview, NEXT panel) shows the name
label consistently. Update color palette for maximum visual distinction
between similar fruits (cherry/strawberry/apple, dekopon/persimmon).
Center score text over the container instead of the canvas.
2026-04-12 11:32:15 +07:00
tiennm99 ffe98e3c33 fix: physics tunneling and update fruit stats to community standard
Fix fruits falling through the floor by replacing single-step physics
with fixed-timestep sub-stepping (16.67ms steps, max 5 per frame).
Add escaped-body cleanup as safety net. Tune physics constants for
better feel (higher density, more bounce, less float).

Update fruit radii to match the community-standard ratios (TomboFry/
moonfloof clones) scaled to our 400px container. Update colors to
match real fruit appearances. Fix "Grapes" → "Grape" per wiki.
2026-04-12 11:19:04 +07:00
tiennm99andGitHub 1e10c766e0 Initial commit 2026-04-12 11:15:15 +07:00
tiennm99 7cda59b80b docs: split README into separate docs
Move tech stack, getting started, and gameplay sections into docs/
folder. Slim README down to a landing page with links.
2026-04-12 10:57:20 +07:00
tiennm99 f6699d8cb6 docs: add CLAUDE.md, update README, add collision fix spec
Add CLAUDE.md with architecture overview and dev commands for future
Claude Code sessions. Update README with tech stack, project structure,
and how-to-play instructions. Add spec for fixing collision physics
tuning issues.
2026-04-12 10:48:50 +07:00
tiennm99 2171bdb8a5 feat: implement Suika Game (Watermelon Game)
Browser-based physics puzzle game where players drop fruits that merge
into larger fruits on collision, using Matter.js for 2D physics and
Canvas2D for rendering. Includes 11-fruit progression chain, scoring,
game-over detection, mouse/touch input, and Vitest test suite.
2026-04-12 10:26:38 +07:00
tiennm99 21030413a0 feat: add ClaudeKit configuration
Add agent definitions, slash commands, hooks, and settings for
Claude Code project tooling.
2026-04-12 10:02:12 +07:00
tiennm99andGitHub 3ea00a0813 Initial commit 2026-04-12 09:54:48 +07:00
tiennm99 b99f467f88 feat: add solve() console command for auto-solving
Call solve() in browser console to auto-solve one move per second.
Call solve() again to stop. Stops automatically on game over.
2026-04-07 22:07:31 +07:00
tiennm99 80327622df fix: toggle pause button text and color based on game state 2026-04-07 22:01:01 +07:00
tiennm99 2c831040f0 fix: use Phaser shutdown event for listener cleanup
Phaser's game.destroy() calls shutdown() on scenes, not destroy().
The old destroy() override was never called, causing stale event
listeners to persist and throw errors in React StrictMode.
2026-04-07 22:00:15 +07:00
tiennm99 e6ccd6583c chore: add Claude Code settings with superpowers plugin 2026-04-07 21:52:20 +07:00
tiennm99 9adf5b20a2 ci: add GitHub Actions workflow to build and deploy to GitHub Pages 2026-04-07 21:51:52 +07:00
tiennm99 935e6edc6f chore: update .gitignore with standard Node.js/Vite entries 2026-04-07 21:43:36 +07:00
tiennm99 2e38801811 fix: address code review issues (listener leak, pause, shuffle, board validation) 2026-04-07 21:33:04 +07:00
tiennm99 bff824fbbc feat: add GameOver screen with play again and menu options 2026-04-07 21:21:10 +07:00
tiennm99 49fd708559 feat: add HUD with timer, score, hint, shuffle, pause, and toast 2026-04-07 21:15:44 +07:00
tiennm99 621097b4b7 feat: implement GameScene with tile rendering, matching, and animations 2026-04-07 21:14:26 +07:00
tiennm99 f9622691ae feat: add GameContainer Phaser-React bridge 2026-04-07 21:10:15 +07:00
tiennm99 3c21bd71e2 feat: add Menu, DifficultySelect screens and App routing 2026-04-07 21:08:43 +07:00