4-typing-game/typing-game/assignment.md
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:
Implementation guidelines:
| 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 |