Supporting UN Sustainable Development Goal 2: Zero Hunger
NutriQuest is an interactive educational game designed to teach children (ages 7-12) about proper nutrition and food security through gamified learning experiences. Built with Scala and ScalaFX, the game features two distinct modes representing Malaysian rural and urban contexts.
This project was developed as part of PRG2104: Object-Oriented Programming course, demonstrating key OOP concepts including:
- Abstraction - Simplified interfaces hiding complex implementations
- Inheritance - Specialized character classes extending base abstractions
- Polymorphism - Multiple forms of behavior based on context
- Encapsulation - Protected data with controlled access
- MVC Architecture - Clean separation of concerns
- Village Mode (120 seconds) - Focus on rural nutrition challenges and local food sources
- Urban Mode (60 seconds) - Emphasis on city lifestyle nutrition needs
- Multi-page interactive learning modules
- Visual infographics and contextual information
- Malaysian-specific food and nutrition contexts
- Self-paced learning with navigation controls
- Drag-and-drop interface - Match food items to characters based on nutritional needs
- Timer-based scoring - Rewards both accuracy and speed
- Visual feedback - Red glow for incorrect matches, green completion states
- Pause/Resume functionality - Flexible gameplay control
- Bonus scoring system - Hidden speed bonuses encourage efficiency
- Soothing background music with toggle controls
- Smooth scene transition
- Responsive visual effects and animations
Ensure you have the following installed:
- Java 21 (Temurin recommended)
- SBT (Scala Build Tool)
- Git
- Clone the repository
git clone https://github.com/sunwaydcis/final-project-Justin-yww.git
cd final-project-Justin-yww- Running the proghram
sbt runbrew install --cask temurin@21brew install sbtexport JAVA_HOME=$(/usr/libexec/java_home -v 21)java -version
arch # Should output: arm64Install these extensions:
- Metals - Scala language server
- Scala Syntax (Optional but recommended)
