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
Terminal
render aUI
based 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
,Food
in 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?