Do LightsOut by yourself, so that you can be confident that you have mastered its ideas. However, feel free to seek help from assistants and classmates.
As with all your individual work, if you get help:
- Acknowledge it (give proper attribution).
- Don't turn it in if you don't understand it.
For this assignment you will design and implement a variation of the electronic game "Lights Out." But your virtual game can add features that a physical game could not easily support. The user will initially be presented with a 5 by 5 (in this case we'll say that numRows=5) grid of buttons, representing lights that are on or off. The object is to end up with all of the lights off. When the user presses a button, the on/off state of that button is toggled, along with all of the "vertically and horizontally adjacent" buttons in the grid. For example, if the user clicks the [2,3] button, then the on/off states of the following buttons are toggled: [2,3], [1,3], [3,3], [2,2], [2,4]. Play with the sample implementation to get an idea of how the game works. |
We will do some in-class exercises that will help with various aspects of this assignment. You will have some time in class to work on this project.
You game should meet the following specification:
You will create this project by applying the software engineering principles:
In addition, you will do a peer review of classmates' projects after the project is turned in.