Commit Graph

8 Commits

Author SHA1 Message Date
3a024e6fab Add Hanyu Jiaocheng content and improve game UX
- Add Hanyu Jiaocheng (Chinese course) book and chapters (3 & 4)
- Update TODO with completed game improvements
- Remove legacy TODO file
- Improve game modules with visual enhancements and bug fixes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 11:43:56 +08:00
abb09023dd Add Canvas-rendered trunks to River Run game with proportional sizing
- Render floating words as wooden trunks using Canvas instead of div elements
- Trunks scale proportionally to word length (longer words = bigger trunks)
- Add realistic wood texture with grain, rings, and highlights
- Display word text both on trunk and below for clarity
- Improve event handling for Canvas-based clickable elements
- Update styles and animations to work with Canvas elements

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-19 11:14:35 +08:00
8ebc0b2334 Add TTS service, deployment docs, and refactor game modules
- Add TTSService.js for text-to-speech functionality
- Add comprehensive deployment documentation (guides, checklists, diagnostics)
- Add new SBS content (chapters 8 & 9)
- Refactor 14 game modules for better maintainability (-947 lines)
- Enhance SettingsDebug.js with improved debugging capabilities
- Update configuration files and startup scripts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-18 23:41:12 +08:00
ab84bbbc71 Reduce game sizes and fix Mario level display
- Reduce RiverRun game height from 100vh to 75vh for better screen fit
- Reduce AdventureReader game height from 100vh to 75vh
- Fix Mario level number display (was showing currentLevel + 1 twice)
  - Updated HUD level display in Renderer.js
  - Updated finish line flag level display in Renderer.js
- Add portable setup files and documentation
- Add new game modules: SentenceInvaders, ThematicQuestions
- Add new content: wte2 book, sbs chapters 2-3, wte2-2 chapter
- Update various game modules for improved compatibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-18 16:22:33 +08:00
4714a4a1c6 Add TTS support and improve content compatibility system
Major improvements:
- Add TTSHelper utility for text-to-speech functionality
- Enhance content compatibility scoring across all games
- Improve sentence extraction from multiple content sources
- Update all game modules to support diverse content formats
- Refine MarioEducational physics and rendering
- Polish UI styles and remove unused CSS

Games updated: AdventureReader, FillTheBlank, FlashcardLearning,
GrammarDiscovery, MarioEducational, QuizGame, RiverRun, WhackAMole,
WhackAMoleHard, WizardSpellCaster, WordDiscovery, WordStorm

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-18 02:49:48 +08:00
838c8289b8 Refactor Fill The Blank game with dual-mode content system
Enhance Fill The Blank to work with both predefined exercises and auto-generated blanks from phrases:

- Add dual content mode support (predefined fill-in-blanks + auto-generated from phrases)
- Implement smart blank generation with max 20% word blanking and max 2 blanks per phrase
- Prefer vocabulary words for auto-blanking with intelligent word selection
- Add comprehensive JSDoc comments explaining both modes
- Improve compatibility scoring to prioritize predefined exercises
- Simplify input handling with data attributes for answers
- Fix WhackAMole and WhackAMoleHard games to use entire hole as clickable area
- Add pronunciation support for correct answers
- Improve error handling and user feedback

Games updated:
- FillTheBlank.js - Dual-mode content system with smart blank generation
- GrammarDiscovery.js - Code cleanup and consistency improvements
- WhackAMole.js - Entire hole clickable, not just text label
- WhackAMoleHard.js - Entire hole clickable, not just text label

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 18:15:24 +08:00
de3267c21d Improve WhackAMole clickable area - click entire hole not just text
Issue: Players found it difficult to click precisely on the mole text,
especially on mobile or with fast-paced gameplay.

Fix:
- Changed click event from hole.mole (text only) to hole.element (entire hole circle)
- Makes the entire circular hole clickable, not just the word
- Much easier to target, especially on small screens
- Applied to both WhackAMole and WhackAMoleHard

Changes:
- src/games/WhackAMole.js:719 - Click on hole.element instead of hole.mole
- src/games/WhackAMoleHard.js:862 - Click on hole.element instead of hole.mole

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 15:34:23 +08:00
05142bdfbc Implement comprehensive AI text report/export system
- Add AIReportSystem.js for detailed AI response capture and report generation
- Add AIReportInterface.js UI component for report access and export
- Integrate AI reporting into LLMValidator and SmartPreviewOrchestrator
- Add missing modules to Application.js configuration (unifiedDRS, smartPreviewOrchestrator)
- Create missing content/chapters/sbs.json for book metadata
- Enhance Application.js with debug logging for module loading
- Add multi-format export capabilities (text, HTML, JSON)
- Implement automatic learning insights extraction from AI feedback
- Add session management and performance tracking for AI reports

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 21:24:13 +08:00