CSE 115 - Spring 2008 - Banner
   CSE 115 - Spring 2008 - Introduction to Computer Science for Majors I
CSE 115 - Spring 2008 - Navigation CSE 115 - Spring 2008 - Lab 8

Lab 9

Introduction

With every final lab, there is always a story. This final lab is no different. One day, the 115 staff (and Carl) were sitting around lamenting the fact that there were no good games to play anymore.

As everyone went around the room, it became clear that the idea "cool" games was a topic like politics and religion (to be avoided in groups larger than one). Carl was all about Pong, while Adrienne expressed affinity towards Tetris and PacMan. Kari argued for the original Mario Bros, and Leah kept low-key (she's not big into confrontation). Mark sat back smugly knowing full well that he had been involved in a conversation like this once before and had the definitive resolution to the conflict and the answer to our students wishes to make a program that is interesting.

It combined the skill of Tetris with the character attachment of Mario Bros, with some additional twists. As he revealed what he was feverishly producing on his laptop. We all knew he had won yet another debate. He created the legendary, and totally awesome Dr. Mario. What's not to love?


New Concepts Covered

The following are the new concepts covered in this lab.
  • Collections of objects
  • primitive types (boolean, int)
  • control structures
    • if statement
    • for and while loop
  • Design Patterns
    • State pattern
    • Proxy pattern
    • Iterator pattern


Hints/Advice

The new concepts will be covered in lecture and in recitation. If you do not attend both lecture and recitation, you will find this lab significantly more challenging. Lecture material will be presented in the context of this lab, or in a similar and related context. It is imperative that you start this lab right away. This is, by far, the most challenging lab of the semester, and it will be figured accordingly into your final grade. The instructors and TAs will be happy to help those who heed this advice, but will grow short-tempered with those who seek beginner's help just prior to the due date.


Lab Tasks

Create a new project in Eclipse

As with Lab 8, you should create your own project and name the project Lab9 and the package inside it lab9. Refer to the Lab 8 directions if you do not remember how to do this.


Assignment Specification

If you have never played Dr. Mario, your first task for the assignment is to play it. Go to this site and try it out for yourself.

In this assignment, you will be able to complete basic functionality for a possible score of 100, or complete basic functionality plus extra credit for a possible score greater than 100. It is most important that you complete the basic functionality before attempting the extras. Note that, even in the Submission Directions, you must submit a basic game separate from the game with extras. Also note that you are required to submit milestone builds throughout the four weeks of this lab. Failure to submit the milestone builds will cause a deduction to your overall earned grade. See below for further details.

Basic requirements (100 points) - See posted grading guideline

Extensions (102 points extra credit described so far - may be adding more!)

NOTE: You are not eligible for extra credit until you have achieved at least a grade of C+. Consult grading guideline for more information about this.

The following are possible extensions that you may choose to undertake. If you have an idea that is not on the list, send email to your instructor for approval of it as an extension and a point breakdown.

  • [10 points] Implement a slider that changes the number of initial viruses on the board at the beginning of the round. The user sets the slider and then starts the game. The correponding number of viruses on the slider is the initial number of viruses.
  • [10 points] Change the level of difficulty (i.e. the number of initial viruses on the screen) as the user progresses through levels.
  • [10 points] Implement "dead" pill segments, where one half of the pill segment will never leave the initial place it was dropped and will never disappear from the board.
  • [5 points] Keep score - as the player eliminates viruses from the screen, the points go up.
  • [5 points] Keep lives - the player has three lives before the game is declared to be over.
  • [10 points] Two-player option that alternates players after each player loses a life.
  • [20 points] Two-player option where both players are playing on the screen at the same time on two different boards.
  • [3 points] Add sounds to the game.
  • [7 points] Add better graphics to the game (ie - viruses that are animated as in the original game, pills that are rounded)
  • [4 points] Implement some sort of high score where you can enter a name and it shows the top few high scores. Note: does not have to maintain this information when the program is closed.
  • [6 points] Change the high score so that it saves the high scores to a file or the like. This way we can save the high scores even when the program is closed.
  • [4 points] Animate the dropping pill segments when the partner is remove from the board.
  • [4 points] Make it so that when there are 4 OR MORE things on the board that have the same color, they are all removed.
  • [4 points] Make it so that when there is a corner, with a 4-part horizontal and 4-part vertical sharing a common pill section, all 7 items are removed

Submission Directions

You must include in the project a README file, as indicated above. This file must be a plain text file. You can create a plain text file in Eclipse by right clicking on your project and selecting New -> Untitled Text File. Now select File->Save As. Navigate to the Lab9 package within your Lab9 project (you should see "Lab9/lab9" as the parent folder location). Name the file "README" and click OK.

After you are finished writing your code, confirm that your .java files, your UML diagram, and the README file are located in the Lab9 package in your Lab9 project. Once you are certain that you have the correct set of files in your project, export your solution as an executable jar file, just as you did in Lab 8, but name your jar file Lab9.jar.

VERY IMPORTANT NOTE- If you decide to do work beyond the minimum requirements, you must do the following:

  • A submission with just your basic requirements, named Lab9.jar.
  • A separate submission with the extra work included, named Lab9Extra.jar.
    • The Lab9Extra.jar file must be able to be imported as an exisiting project entitled "Lab9Extra." This means that the project folder name must be "Lab9Extra" before you attempt to export.
    • In your Lab9Extra README file, you must include a list of the extra credit items you completed, as well as the testing and bug information for the extra credit items.

You must follow all directions about filenames exactly, otherwise your work will not be graded.

When you are ready to submit your work, use the electronic submission program that corresponds to your recitation.


Due Dates

Due 11:59:59pm on Monday, April 28th for all students.

However, to ensure full credit on the lab, you must submit two milestone builds, one by 11:59:59pm on Thursday, April 10th, and another on Sunday, April 20th. The first milestone build should include what you have completed on the project up until that point. The second build should be some additional work on top of the first build.

 

CSE 115 - Spring 2008 - Footer

 

 
Page Maintained by: Adrienne Decker