Overview
For this project you will implement code for a game named clear
cell game. The game's goal is to maximize the number of cleared
cells in a colored board. Users will be able to click on a board cell and
cells surrounding the selected cell will be cleared if they have the same
color as the selected cell. Once a row of cells is cleared the row will be
removed (collapsed).
We will provide the graphical user interface (GUI) and you need to develop
the code that implements the rules of the game. A video illustrating the
collapse game can be found at: Game Video
Objectives
This project will allow you practice two-dimensional arrays, abstract
classes, and test development.
Grading
- (65%) Public Tests
- (15%) Release Tests
- (10%) Student Tests
- (10%) Style
Clarifications
Any clarifications or corrections associated with this project will be
available at: Project
Clarifications
Code Distribution
The project's code distribution is available by checking out the project
named ClearCellGame. The code distribution provides you with the following:
- gui package → Represents the graphical user
interface for the game. Executing the main method of GameGUI class will
allow you to play the game.
- model package → Includes the classes you need to
implement.
- tests package → Includes the public test
model.
- Project description
- Text files → Represent the expected output for
public tests.
Specifications
You are expected to implement methods for the GameModel and
ClearCellGameModel class. The other classes have been provided and you should
not modify them. .The javadoc describing what you must implement can be found
at: Project Javadoc
No secret tests are associated with this project. You have a maximum of
three tokens in the submit server.
Requirements
- You may not use recursion during the implementation of the expected
methods. If you don't know what recursion is don't worry about it (it is
something we will cover later in the semester).
- You may not add any classes but feel free to add any instance variables
and private methods you understand are necessary.
- You must attempt to submit your project immediately after checking out
the project (even if you have not implemented any methods). This will
allow you to verify that the submission process is working as expected.
- You should submit your project often. This will keep versions of your
project in the submit server that are easy to retrieve (you can also get
previous versions from your CVS repository). If your computer crashes or
you experience any other problem you will have a permanent backup in the
submit server.
- IMPORTANT If you have a problem with your code and
need assistance during office hours, you need to have a student test(s)
that illustrates the problem you are experiencing.
- See StudentTests.html
for information regarding the implementation of student tests.
- Style
- Good variable names.
- You must avoid code duplication by calling appropriate methods
(rather than cutting and pasting code). You may define your own
private utility methods to perform often repeated tasks.
- Style as defined by the Eclipse Format Element option (Source
→ Format → Format Element) or as specified in Code
Conventions for the JavaTM Programming Language (focus on the
following sections: Indentation, Declarations, Statements, White
Space, and Naming Conventions).
- Although you should avoid source lines exceeding 80 characters, you
will not be penalize if they are present in your code.
Honor Section Requirements
Requirements will be described in lecture.
Suggestions on How To Start the Project
- Study the public tests before starting implementing your project.
- Notice that you can implement this project without using the GUI at
all.