CompSci 308
Spring 2024
Advanced Software Design and Implementation

Breakout : Project Plan and Starting Code

It's not the plan that is important, it's the planning. — Dr. Gramme Edwards

This part is intended to get you thinking about a program without worrying about exactly how it will be implemented.


Edit the Markdown file, called, included in your repository in the doc folder to create a plan of what you intend to build in the next week before writing any code, including:

For each of these points, you can include more than the minimum number asked for because the goal of this plan is partly to get you thinking about what is possible. However, try to keep the ideas within the realm of feasibility, things you think you might actually be able to implement in the next week without stressing yourself out too much. In this sense, this plan's other purpose is to give you a chance to try to estimate what you think you can accomplish in about a week (and roughly 1000 lines of code).

The basic version of this game continues to have appeal because it easily supports complex variants, such as:

Study these for their ideas, not their appearance or level of sophistication.

This plan is not intended to be completely binding, but if you plan to make all your levels have something in common and then you never implement that or change what it is completely, then it is not clear you thought about the project in enough detail to make critical choices. Basically, you should put enough thought into this part (perhaps by spending some time working through a tutorial first) to show you did not simply dash off something just to meet a deadline. If you can change everything later, then there is no point to the plan. Any changes to this Plan should be addressed in your DESIGN document and Analysis Journal at the end of the project (note, adding descriptive comments while you write the code for it can be helpful for remembering your thought process and other details about the change so you can explain it later).

Starting to Code

The goal of this part is simply to make sure your development environment is setup correctly and you are able to make progress on the project.