Commit Graph
6 Commits
Author SHA1 Message Date
mattlamb227@gmail.com 10d8b0a376 feat: auto-save replays on game over and page unload
- Add autoSave() function that saves replay silently on game over
- Add beforeunload listener to save incomplete games when navigating away
- Add prominent 'Save Now' button in status bar (visible during play)
- Show 'Replay auto-saved!' notification in status bar
- Add gameSaved flag to prevent duplicate saves
2026-08-09 22:11:50 -04:00
mattlamb227@gmail.com ba6e26ab59 fix: placement cells missing width/height and incorrect positioning
- Add width/height (30px) to .placement-cell CSS so cells are visible
- Account for CSS grid gap (1px) in placement cell positioning
- Set width/height dynamically in JS for consistency
2026-08-09 21:56:27 -04:00
mattlamb227@gmail.com 4a4eef679a fix: add action/method attributes to new game form 2026-08-09 21:35:14 -04:00
mattlamb227@gmail.com 70672e9fef feat: add playable Blokus web UI with replay system
- Add blokus_ui package: Flask web app for human-vs-bot Blokus
- GameSession: wraps BlokusGame for human play, records move history, serializes
- RunStore: file-based JSON replay storage with save/load/list/delete
- Flask app: routes for new game, play, save, browse runs, replay
- Templates: index (new game + run browser), game (playable board), replay (step controls)
- Static: CSS (dark theme, colored cells, placement overlays) + JS (click handling, API calls)
- Add blokus_ui tests (19 tests for GameSession and RunStore)
- Update pyproject.toml with flask dependency and blokus-ui entry point
- Fix: remove unreachable dead code in BlokusGame.valid_move
- All 102 tests pass, ruff lint clean
2026-08-09 20:08:18 -04:00
mattlamb227@gmail.com 123513e32f fix: remove unreachable dead code in BlokusGame.valid_move (game.py:220-260) 2026-08-09 18:18:46 -04:00
mattlamb227@gmail.com 4eb34bfeeb initial commit 2026-08-05 16:42:57 -04:00