๐ Overview
In this assignment, you will build a simplified Solitaire-style card game using Flutter and the Flame Engine.
You are required to find your own assets (card images and audio files) to use in the game.
This assignment focuses on:
-
Drag & drop mechanics
-
Sprite layering and positioning
-
Sound effects & background music
-
Flame game structure
-
Git branching workflow
๐ Solitaire Rules Reference (Required Reading):
๐https://en.wikipedia.org/wiki/Klondike_(solitaire)
โ ๏ธ You are not required to implement all official Solitaire rules.
The focus is on interaction, audio, and structure.
๐ฏ Learning Objectives
By completing this assignment, you will be able to:
-
Implement drag-and-drop cards using Flame
-
Organize a Flame game using components
-
Play sound effects triggered by user actions
-
Manage background music with multiple tracks
-
Handle basic rule validation
-
Build a structured 2D game using Flame
๐ฎ Game Requirements (ALL REQUIRED)
1. Simplified Solitaire Layout
Your game must include at least:
-
One tableau area (multiple columns)
-
One foundation area
-
Card front and back
-
Cards positioned in stacks or columns
You do not need to implement:
-
Stock / waste piles
-
Full color-alternating rules
-
Advanced scoring or timers
2. Card Assets
-
Use sprite images for cards
-
Cards must visually stack correctly
-
Card front and back must be distinguishable
3. Card Movement
Implement drag & drop:
-
Drag cards using mouse or touch
-
Drop cards onto target areas
-
Invalid drop โ card returns to original position
-
Valid drop โ card snaps into place
Only single-card movement is required.
4. Sound Effects
Add sound effects for:
-
Card pick-up or move
-
Card drop
-
Invalid move (optional)
Sounds must trigger at the correct interaction moment.
5. Background Music
Implement background music that:
-
Starts automatically when the game runs
-
Uses multiple music tracks
-
When one track finishes:
-
Play the next track, or
-
Randomly select a new track
-
-
Continues indefinitely without overlapping
6. Basic Game State
Include at least one of the following:
-
A โYou Winโ message
-
A reset / restart button
-
Simple detection that all cards are placed in the foundation
7. Visual Design
-
Clear spacing between piles
-
Correct visual stacking order
-
Solid color or background image allowed
๐ Git Workflow (Required)
You must follow this branching flow:
Rules:
-
All development happens in
dev -
Merge
dev โ beta -
Merge
beta โ main -
No direct commits to
main
๐ Submission Requirements
1. GitHub Repository
Submit:
-
GitHub repository URL
-
Repository must include:
-
dev,beta,mainbranches -
A working Flame game
-
2. README.md (Required)
Your README must include:
-
Game description
-
Rules reference link
-
How to play (controls)
-
Features completed
-
Known limitations / incomplete rules
๐ Evaluation Criteria
You pass this assignment if:
โ Cards drag & snap correctly
โ Sound effects trigger properly
โ Background music switches correctly
โ Git workflow is respected