USC CSD Home
 

Homeworks - CSCI 200L, Fall 2011

The first three homework assignments are meant to be completed individually by students on their own. These assignments must be submitted using the submit program. Submission instructions for each assignment can be found on the individual assignment pages.

All of the homework assignments will require students to prepare a design document. You can find a template for your design documents here.

 
Homework Assignments
(Please note that access to homework assignments is restricted.)
Homework Assignment Points Due
#1 - Non-GUI Side Scroller Game 20 11:45PM, 9/13/2011 (extended)
#2 - First GUI Action RPG 30 11:45PM, 9/27/2011 (extended)
#3 - The REAL Action RPG 30 11:45PM, 10/11/2011 (extended)
 
Homework Assignment Grading
For grading related policies, please refer to the Homeworks & Class Project Grading section of the course description web page.
 
Academic Integrity Policy
Please make sure you read the Academic Integrity Policy of this course.
 
Homework 1 - Non-GUI Side Scroller Game
You get to decide what kind of side scroller game you wish to have. The player is to do something: kill things, find things, avoid things, etc. Whatever it is requires that things are to move. The problem is that you don't know how to do this using Java. For now, we will use a text-based game. You must use characters to represent the different things that are moving. Since it is character-based, you have character positions and lines. You can think of each possible character position as a pixel. You can decide how big your "screen" is by defining how many character rows and columns there are to be. Then you write that many characters per line and that many lines each "turn" of the game.

A player should be able to pause the game, stop the game and start a new game, or just exit the game. All of this, including playing the game will require keyboard input. You won't be able to use the mouse, yet.

Statistics: You must keep track of something - players hit points, money acquired, things acquired, experience acquired, etc. This doesn't have to affect how the game gets played, at least not yet.

Some Object-Oriented Requirements

You are to have at least 5 classes in this assignment: Player, Game, Application, a class for things that move, and a class for things that don't move. You may want to have other classes, or use inheritance. Having 3 subclasses of a single superclass does not count as 4 classes. That is one class.

  • The Game class is to contain the rules for playing your game. It is to manage the game while in progress.
  • Your application class is responsible for getting everything started. You may want to prompt the player for their name, etc., then start the game. Prior player data is to be read from a file. When a player is finished playing, you are to save their current data, along with any other prior player data, to a file.

Grading

  • Design writeup: 2 points
  • Comments: 3 points
  • "Monster/Thing" class: 3 points
  • Player class: 3 points
  • Game class: 5 points
  • Application class: 4 points

Submission

All assignments are to be submitted electronically - including your design documents. To submit your work, you must be logged into aludra.usc.edu - in your Unix account. We use the submit program to do the actual submission. The command line you must enter to submit your work is:
     submit -user csci200 -tag hw1 MYFILEA MYFILEB MYFILEC
Where MYFILEA/MYFILEB/MYFILEC is the list of file names that you are submitting. DO NOT submit your compiled code, just your source code and design documents. Also, submit a file called COMPILE.TXT. This is the instructions for the TA/LA on how to compile and run your programs. If you have lots of files to submit, use the asterisk (*) to submit all the files in a directory.
 
Homework 2 - First GUI Action RPG
You are to convert your homework 1 to have a GUI. Prompting the user for starting a game, pausing the game, saving the game state, loading the game state from a file, and quitting the game are to be done through the command line. All text output during the game is also to be through the command line. All game play is to be through the GUI. You are to use either the mouse (through MouseListener), or the keyboard (through KeyListener) for actual playing of the game. If you want to use both, that is also fine.

You are to have at least 3 types of moving things. They are to move differently. It can't just be that one moves twice as fast as another. You are also to have two types of things that do not move. The non-moving things cannot be the same. One might just be an obstacle, another might have some effect on the Player, or a moving thing, if it gets too close (perhaps it shoots).

Grading [BC: updated 9/19/2011]

  • Design writeup ([BC: updated 9/20/2011] including a User's Manual): 3 points
  • Comments: 2 points
  • "Monster/Thing" classes (3 things that move, in addition to the Player, and 2 that do not move): 7 points (2 points for movement logic, 5 point for 5 different classes)
  • Use of KeyListener or MouseListener: 2 points
  • Player class: 3 points (1point for movement logic)
  • Game class: 8 points
  • Application class: 1 point
  • Look and feel of the game: 4 points

Submission

All assignments are to be submitted electronically - including your design documents. To submit your work, you must be logged into aludra.usc.edu - in your Unix account. We use the submit program to do the actual submission. The command line you must enter to submit your work is:
     submit -user csci200 -tag hw2 MYFILEA MYFILEB MYFILEC
Where MYFILEA/MYFILEB/MYFILEC is the list of file names that you are submitting. DO NOT submit your compiled code, just your source code and design documents. Also, submit a file called COMPILE.TXT. This is the instructions for the TA/LA on how to compile and run your programs. If you have lots of files to submit, use the asterisk (*) to submit all the files in a directory.

[BC: paragraph added 9/19/2011]
You can also create a single hw2.tar.gz file and submit it using the commands below:

     /usr/usc/bin/gtar cvzf hw2.tar.gz MYFILES MYFILEA MYFILEB MYFILEC
     submit -user csci200 -tag hw2 hw2.tar.gz
This way, you are only submitting one file and it should be easier to verify your submission.
 
Homework 3 - The REAL Action RPG
You are to eliminate all command line input and output. All user input and output is to come from the GUI window.

You are to have menus for the user to select the various options - see high scores, start a game, pause a game, stop a game, etc.

You are now to have levels in your game. You are to have at least 3 levels for the player. Each level is to be more difficult than the prior level. You are to have 2 new moving "things" at level 2 and 2 more new moving "things" at level 3. This makes 7 different moving things in total. This means that move (or shoot) differently than any other "thing" in your game. Just moving faster or moving in different directions is not sufficient.

You are to have a screen to display the top 10 high scores. When the user selects the menu option to see the current high scores, the game should be automatically paused and it is to be replaced with the high scores screen. You may find CardLayout convenient for this.

Grading

  • Design writeup (including a User's Manual): 5 points
  • Comments: 3 points
  • "Monster/Thing" classes: 10 points
  • Player class: 2 points
  • Game class: 5 points
  • Application class: 1 point
  • Look and feel of the game: 4 points

Submission

All assignments are to be submitted electronically - including your design documents. To submit your work, you must be logged into aludra.usc.edu - in your Unix account. We use the submit program to do the actual submission. The command line you must enter to submit your work is:
     submit -user csci200 -tag hw3 MYFILEA MYFILEB MYFILEC
Where MYFILEA/MYFILEB/MYFILEC is the list of file names that you are submitting. DO NOT submit your compiled code, just your source code and design documents. Also, submit a file called COMPILE.TXT. This is the instructions for the TA/LA on how to compile and run your problems. If you have lots of files to submit, use the asterisk (*) to submit all the files in a directory.

You can also create a single hw3.tar.gz file and submit it using the commands below:

     /usr/usc/bin/gtar cvzf hw3.tar.gz MYFILES MYFILEA MYFILEB MYFILEC
     submit -user csci200 -tag hw3 hw3.tar.gz
This way, you are only submitting one file and it should be easier to verify your submission.
 

[Last updated Sat Sep 19 2020]    [Please see copyright regarding copying.]