Topic 1 - Variables and Data Types
Topic 2 - Conditionals and Strings
Topic 3 - Loops
Topic 4 - Arrays
Topic 5 - File Handling
Semester 1 Projects
Topic 6 - Classes/Objects and Methods
Topic 7 - ArrayLists
Semester Projects

Part 3: Possible Extensions (optional)

If you’d like to extend your application, there are a couple of specific items and an open-ended invitation to improve on the applet for optional.

IMPORTANT: If you add optional features, please explain them carefully in your design submission. Otherwise, you won’t be eligible to get credit for them. 

  • Enemy Snakes!: Allow there to be one or more “enemy” snakes that use your breadth-first-search code and/or other heuristics to play against your snake. (This is worth extra bonus points since it is a bit more challenging.)
  • Speed up: You might want to have the rate at which the snake is moving to increase as the game progresses.
  • Scoring: You might want to have a system of scoring with a running total displayed as a label or text field or simply drawn to the applet panel.
  • Lives: Rather than resetting or stopping the game after a single Snake Pro crash, keep a text field (or label) with the number of lives remaining and decrement it after each crash. When there are no lives left, stop the game (though you might want to consider a “reset” button.) 
  • Levels: Rather than maintaining a single, static board, you may want to have the snake advance to different boards after consuming enough food.
  • Wrapping: Allow the snake to wrap around the game board — either in an unlimited fashion or through small tunnels in the walls. Or you might consider a “hyperspace” square, that “sends” cells to another spot on the board.

General improvements: Feel free to add additional features you think would enhance to Snake pro: different kinds of food, sounds, images, other graphical widgets like pull-down menus or text boxes, etc.