CSSE 220: Object-Oriented Software Development
Crazy Eights

Goals

This exercise will help you gain experience with:

Grading rubric

Points Layout:

As always, use good style and JavaDoc comments, or you'll lose points

For any points deducted, the grader will put a CONSIDER tag saying how many points were deducted and why.

Here is a link to the General Instructions for Grading Programs.

Getting started

You will work with a partner, so you'l need a new repository that you both have access to. We've made one for each pair for this project. This document lists the name of the repository you need to connect to (like you did on day 1 of this course, so you may need your password). Find your username and your repo name is to the left, like csse220-201710-crazyeights17. Checkout the CrazyEights project inside.

Overview

You will implement this project from a set of requirements provided below. If you have questions on these requirements, please ask them ASAP to make sure you're implementing the application correctly.

After you have read and understood the requirements, you and your partner should follow the general development phases described below NOTE: You can go back to any phase at any time to make updates if you run into issues, this happens all the time and is normal in software development.

Rules of the Game

The object of the game is to get rid of all your cards first.

Below are the basic rules of the version of the game Crazy Eights that you'll be implementing. These may be slightly different than the version of the game you're used to, so be sure to read them carefully and implement these rules.

Requirements

The following are the requirements your application must support:

NOTE: Parts of some of the requirements may already be implemented for you. Before you begin your design phase, be sure to look at what code we've already provided.

Here's an example of the output you're expected to have.

Testing

With your partner, find at least 3 things that could cause errors in your code. For each one, perform the following steps:

  1. Identify a possible error condition (such as errors with user input, bad command timing, invalid commands, etc.).
  2. Write a test case that exposes this issue. Write the test case first and determine what you would like your code to do when this happens. The message to the user is your choice, but your application should not crash.
  3. Run your test case and verify that it fails (since you wrote the test case before you fixed the issue in the code).
  4. Fix the code.
  5. Run the code again and verify that the test passes.

Turn-In Instructions

Add your files to source control: Right-click on the project, then select Team --> Commit. Be sure to add a brief commit message that describes what you have done. If you choose to commit a single file instead, you can right-click on that file and select Team --> Add to Version Control. However, you must commit that file in order for it to be posted on the SVN server.

Commit your project to your team repository often is strongly encouraged, not only when you are done.