Commit Graph
46 Commits
Author SHA1 Message Date
dependabot[bot]andGitHub adc2e1de32 chore(deps): bump actions/upload-pages-artifact from 3 to 5 (#9) 2026-05-23 18:45:44 +07:00
dependabot[bot]andGitHub 0031e82353 chore(deps): bump next from 15.3.1 to 16.2.6 (#14) 2026-05-23 18:44:56 +07:00
dependabot[bot]andGitHub 781dfdf4c0 chore(deps): bump phaser from 3.90.0 to 4.1.0 (#15) 2026-05-23 18:17:01 +07:00
dependabot[bot]andGitHub 304b5358ea chore(deps-dev): bump jest from 29.7.0 to 30.4.2 (#13) 2026-05-23 18:14:06 +07:00
dependabot[bot]andGitHub 8d21684226 chore(deps): bump the minor-and-patch group with 2 updates (#12) 2026-05-23 18:11:31 +07:00
dependabot[bot]andGitHub c90eb2b020 chore(deps): bump actions/checkout from 4 to 6 (#10) 2026-05-23 18:09:52 +07:00
dependabot[bot]andGitHub e92616146a chore(deps): bump actions/setup-node from 4 to 6 (#8) 2026-05-23 18:09:48 +07:00
dependabot[bot]andGitHub d57a55ab4a chore(deps): bump actions/configure-pages from 5 to 6 (#7) 2026-05-23 18:09:44 +07:00
tiennm99andGitHub 8dfdc6e450 chore: add dependabot config (#6) 2026-05-23 10:48:23 +07:00
tiennm99 9f1a424c47 chore(ci): bump node to 24 2026-05-13 10:52:35 +07:00
tiennm99 72d81a5bd8 fix(ci): approve sharp build via pnpm-workspace.yaml allowBuilds 2026-05-13 10:39:13 +07:00
tiennm99 edb7b96fea fix(ci): bump Node.js to 22 required by pnpm@11.1.1 2026-05-13 10:33:45 +07:00
tiennm99 232b657be0 fix(ci): remove pnpm version override conflicting with packageManager 2026-05-13 10:28:42 +07:00
tiennm99 9b377ecd00 chore: migrate from npm to pnpm
Replace package-lock.json with pnpm-lock.yaml, add packageManager field,
update GitHub Actions workflow to use pnpm/action-setup@v4, and convert
README instructional npm commands to pnpm equivalents.
2026-05-13 10:20:18 +07:00
tiennm99 d8deea4009 chore: relicense from MIT to Apache-2.0 (sole-author repo) 2026-05-11 17:15:45 +07:00
tiennm99 27fc7c1749 update .gitignore to exclude chrome-devtools artifacts 2026-04-04 17:33:27 +07:00
tiennm99 6d6cd80c23 refactor: replace card terminology with emoji/cell in user-facing text
- Page title: "Pikachu Card Matching" → "Pikachu Connect"
- Menu subtitle: "Card Matching" → "Emoji Matching"
- CLAUDE.md: update descriptions to reflect emoji-based game
- game-design.md: "Card Rendering/States" → "Cell Rendering/States"
- README: remove obsolete card asset pack reference
- Internal code names (cardBg, selectedCards) kept as-is
2026-04-04 17:22:44 +07:00
tiennm99 107a1d6db8 feat: rounded corners for cards, buttons, and grid border
- Replace sharp Rectangle objects with rounded rect Graphics/textures
- Generate card state textures (normal/hover/selected/mismatch/hint)
  with 6px radius via fillRoundedRect at scene init
- Buttons use Graphics with 8px radius and redraw on hover/press
- Grid border uses 10px rounded rect
- MainMenu start button also rounded, dark theme consistent
- State changes use setTexture() instead of setFillStyle/setStrokeStyle
2026-04-04 17:18:09 +07:00
tiennm99 9d2712a82c feat: dark theme UI with score/combo/timer + modularize game scene
- Dark theme (0x0d0d2b) with gold accents inspired by pikachu-connect
- Score system with combo multiplier (max x8, 2.5s window)
- 180s countdown timer with red warning at ≤30s
- Gold selection glow, match rotation animation, combo popups
- Glowing path effect (thick glow + thin core + endpoint dots)
- Blue hint glow animation, win/loss completion screens
- Modularize PikachuGame.js (605→290 lines) into:
  - pikachu-game-config.js (constants)
  - pikachu-path-renderer.js (path drawing)
  - pikachu-game-ui.js (buttons, timer, stats, completion, hint)
2026-04-04 17:09:36 +07:00
tiennm99 1fe50aa6d5 fix: clear path lines after match animation completes 2026-04-04 16:49:38 +07:00
tiennm99 9ec6faabac fix: use Graphics instead of Line for correct path drawing
Phaser Line objects have origin (0.5, 0.5) which shifts the line
off-position. Switch to Graphics.strokePath() which draws at
absolute coordinates.
2026-04-04 16:09:15 +07:00
tiennm99 5c57a3f85f feat: always show connection path between selected cards
- Valid match: green path drawn along the actual route, visible for 400ms
  before cards are removed
- Invalid match: red line between the two cards with fade-in animation,
  visible for 500ms alongside shake feedback
- Path lines animate in with staggered fade (150ms per segment, 50ms delay)
- No longer requires debug mode to see connection paths
2026-04-04 15:50:15 +07:00
tiennm99 6489633784 docs: replace PDF with comprehensive game design document
Extract and expand game rules from pikachu.pdf into detailed markdown.
Covers board structure, all 4 matching patterns with ASCII diagrams,
card states, animation specs, symbol set, and technical architecture.
2026-04-04 15:25:54 +07:00
tiennm99 3bb6ed5d74 fix: regenerate package-lock.json for npm ci compatibility 2026-04-04 14:52:59 +07:00
tiennm99 214c305e83 ci: add GitHub Actions workflow to deploy to GitHub Pages
- Add deploy.yml: test → build → deploy pipeline
- Update next.config.mjs with basePath/assetPrefix for /pikachu/ subpath
- Uses actions/deploy-pages for GitHub Pages deployment
2026-04-04 14:42:00 +07:00
tiennm99 48a8aa29ae remove settings.local.json from version control 2026-04-04 14:28:05 +07:00
tiennm99 1b64ab7a7b fix: add text padding to prevent emoji glyph clipping 2026-04-04 14:25:33 +07:00
tiennm99 38d107a57a feat: add ?scene=game URL param to skip menu for debugging 2026-04-04 14:17:20 +07:00
tiennm99 45774cf563 fix: adjust card size and padding for better emoji display 2026-04-04 14:14:15 +07:00
tiennm99 b3fac84176 fix: enlarge cards to 55x55 so emojis display without cropping 2026-04-04 14:05:09 +07:00
tiennm99 e68038a157 fix: make cards square so emojis display fully without cropping 2026-04-04 14:00:35 +07:00
tiennm99 4b20343673 feat: use fun emojis as card faces
Replace card suit symbols with 24 fun emojis (faces, animals, objects)
for a more playful and visually distinct matching experience.
2026-04-04 13:55:09 +07:00
tiennm99 57bd599d90 feat: replace card images with emoji-styled cards, polish UI/UX
- Replace 52 card PNG assets with emoji-styled cards (suit symbols + values)
  rendered via Phaser containers (rectangle bg + text)
- Card interactions: hover (blue bg + scale), selection (green bg + pulse),
  match (white flash + scale up + fade), mismatch (red bg + shake)
- MainMenu: title entrance animation, button hover/press feedback,
  scene fade transitions, subtle title glow pulse
- Add moves counter tracking player progress
- Completion screen: dark overlay, animated congratulations, move stats,
  play again button
- Unified dark elegant theme (#16213e) across all scenes and CSS
- Clean up globals.css, remove unused styles
- Preloader: simplified without card asset loading
2026-04-04 13:52:03 +07:00
tiennm99 31e3fe6f93 refactor: DRY up game logic, remove dead code
- PikachuGameLogic.js: eliminate duplicated pattern methods (507→240 lines)
  - Remove non-WithPath variants, rename WithPath to findIPath/findLPath/etc
  - Replace redundant checkLineX/Y with isPathClear
  - New findPath() returns {valid, path, pattern} as single source of truth
  - Rename confusing U-pattern helpers with descriptive names
  - Fix testMove calling pattern methods twice redundantly
- PikachuGame.js: use new findPath API, remove dead changeScene method
- Delete empty unused Home.module.css, clean up index.jsx
- Simplify jest.config.js
2026-04-04 13:20:10 +07:00
tiennm99 007882962b update .gitignore with session-state and settings.local.json 2026-04-04 12:51:00 +07:00
tiennm99 ffd7577a65 fix: Z-pattern logic, eliminate code duplication, fix tests
- Fix Z-pattern to use proper 2-turn path (H-V-H and V-H-V scanning)
  instead of single midpoint which only duplicated L-pattern behavior
- Eliminate ~390 lines of duplicated pattern-matching code from
  PikachuGame.js by delegating to PikachuGameLogic via shared board ref
- Fix removeCards to reset type=0 so pattern matching works after removal
- Fix Jest config: remove invalid preset, add ESM support for Windows
- Rename log.js to log.cjs for CommonJS compatibility with ESM project
- Fix test expectations to account for pattern priority and border routing
2026-04-04 12:50:30 +07:00
tiennm99 73239c1e27 test: init tests 2025-07-17 14:16:06 +07:00
tiennm99 b0ebabb372 fix: logic 2025-07-17 13:36:27 +07:00
tiennm99 7f7ebe6753 feat: init claude, debug line 2025-07-17 13:28:01 +07:00
tiennm99 66d8b70ed1 feat: cleanup, fix U pattern 2025-07-16 23:45:26 +07:00
tiennm99 f9f3a9b355 feat: init simple rule 2025-07-16 23:19:12 +07:00
tiennm99 fb691216af Add credits section to README
Added a 'Credit' section to the README with links to the rule document and asset pack used in the project.
2025-07-16 23:13:05 +07:00
tiennm99 e80b412f02 feat: add assets 2025-07-16 23:11:19 +07:00
tiennm99 0b4614b99e feat: convert ts to js 2025-07-16 22:43:51 +07:00
tiennm99 db0a199940 chore: init 2025-07-16 22:30:16 +07:00
Tien Nguyen MinhandGitHub d1fbb908a9 Initial commit 2025-07-16 22:11:29 +07:00