You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/4-typing-game/typing-game/assignment.md

42 lines
3.4 KiB

# Create a new keyboard game
## Instructions
Now that you've mastered the fundamentals of event-driven programming with the typing game, it's time to unleash your creativity! You'll design and build your own keyboard-based game that demonstrates your understanding of event handling, DOM manipulation, and user interaction patterns.
Create a small game that uses keyboard events to accomplish specific tasks. This could be a different kind of typing game, an art application that paints pixels to the screen on keystrokes, a simple arcade-style game controlled with arrow keys, or any other creative concept you can imagine. Get creative and think about how different keys can trigger different behaviors!
**Your game should include:**
| Requirement | Description | Purpose |
|-------------|-------------|---------|
| **Event Listeners** | Respond to at least 3 different keyboard events | Demonstrate understanding of event handling |
| **Visual Feedback** | Provide immediate visual response to user input | Show mastery of DOM manipulation |
| **Game Logic** | Include scoring, levels, or progression mechanics | Practice implementing application state |
| **User Interface** | Clear instructions and intuitive controls | Develop user experience design skills |
**Creative project ideas to consider:**
- **Rhythm Game**: Players press keys in time with music or visual cues
- **Pixel Art Creator**: Different keys paint different colors or patterns
- **Word Builder**: Players create words by typing letters in specific orders
- **Snake Game**: Control a snake with arrow keys to collect items
- **Music Synthesizer**: Different keys play different musical notes or sounds
- **Speed Typing Variants**: Category-specific typing (programming terms, foreign languages)
- **Keyboard Drummer**: Create beats by mapping keys to different drum sounds
**Implementation guidelines:**
- **Start** with a simple concept and build complexity gradually
- **Focus** on smooth, responsive controls that feel natural
- **Include** clear visual indicators for game state and player progress
- **Test** your game with different users to ensure intuitive gameplay
- **Document** your code with comments explaining your event handling strategy
## Rubric
| Criteria | Exemplary | Adequate | Needs Improvement |
| -------- | --------- | -------- | ----------------- |
| **Functionality** | A complete, polished game with multiple features and smooth gameplay | A working game with basic features that demonstrates keyboard event handling | A minimal implementation with limited functionality or significant bugs |
| **Code Quality** | Well-organized, commented code following best practices with efficient event handling | Clean, readable code with appropriate use of event listeners and DOM manipulation | Basic code structure with some organization issues or inefficient implementations |
| **User Experience** | Intuitive controls, clear feedback, and engaging gameplay that feels professional | Functional interface with adequate user guidance and responsive controls | Basic interface with unclear instructions or poor responsiveness |
| **Creativity** | Original concept with innovative use of keyboard events and creative problem-solving | Interesting variation on common game patterns with good use of event handling | Simple implementation of a basic concept with minimal creative elements |