Entry point of the game.
- Parses commands/option flags.
- Creates and invokes a
Driver.
Run the animation/update/event loop.
Owns: a Terminal, a Game.
At each animation tick:
- Updates its
Game, accounting for user input from itsTerminal. - Has its
Terminalrender aUIbased on itsGame.
Wraps interface between game and user.
- Detects and reports user input.
- Renders a
UI.
Wraps a Game, turning it into a Terminal-renderable format.
Maintains and updates game state.
Owns: a Snake, Food.
- Tracks
Snake,Foodin bounded 2D space. - Updates in response to animation ticks, input events.
- Detects and reports game events, such as collisions.
Represents a snake object.
Represents a food object.
- Snake can wrap around edges?
- Food can have multiple colors for multiple values?
- Multiple foods?
- Multiple snakes?
- Customize food/snake sprites with flags?
- Networked play?