CIS 3309 Section 1

Homework Assignment HWA 06 I

Initial Stage of the Game Project Design


 

(Note: Homework problems are to be turned in to the instructor, not the lab assistant.)

 

Objectives:
Software design Using Classes (these tasks are to be carried out in parallel):

1) Sketching out forms design

2) Understanding the behavior of your game (first pass)

3) Identifying and documenting the objects to be manipulated

4) Designing the class that model these objects

        a) purpose of the class (summary) 

        b) attributes (fields and properties)

        c) methods (with interface descriptions)

        d) exceptions to be handled

 

 

Homework Assignment:  To be turned in (one copy) by your entire group (both of you) Note due dates carefully please.

A. Decide on the members of your group -- groups of two except in special circumstances.  Submit the names to me by no later than the due date of this HW (Sun Mar 7th  noon).

B.  Decide on the game you want to model.  Here is a list of games to select from --  more ideas are welcome.  (Due Sun Mar 11th at noon)

     The asterisked games are prefered.  CAUTION: I may ask all teams to do the same game.  Do not start on this project without talking to me first.  (X implies off limits for Spring 2020).  If you have another game in mind, see me soon or send me an email to see if it is either too easy, or too hard.  SEND ME YOUR GROUP AND GAME INFO BY EMAIL as soon as you can.

* Battleship

* Bingo - for four people and hence four cards (X)

* Boggle (Difficult - a rewarding challenge) 

* Checkers (not easy but  a great choice)   

    Connect Four (X)

    Connect the Dots

* Hangman (X)

* Jeopardy - careful how yo do it - your choice as to what you implement)

   Lyrics Match Game

* Mancala (use inheritance if you can)

* Mastermind

* Matching Game (I can't recall the actual title but I can describe it)

* Monopoly Junior (a little harder but fun)

   Minesweeper - you will have to explain this to me -- I still do not understand it

   Snake Game

* Slot Machine

* Sudoku Assistant (harder but could make you look smart)

   TicTacToe (needs to be good because it is pretty easy) (X)

   Towers of Hanoi (use your imagination or it will be too easy)  (X) 

* Yahtzee (a good game to do - especially if you provide a good user interface)

 

     C.  Write out detailed design documentation for your game 

             Items 1-3 are due Fri the 12th (11:59pm).  For Spring 2021, do as soon as
          possible.  Not to be turned in.
     Items 4-6 are due Sun Mar 14th (11:59pm). 

             In-class game presentations are due to start on Tue Mar 23rd. 
     Some code is required, at least enough to prove you have some part of the
           game working.

	
1.   Play the game.  Follow the rules of the game.  If you decide to change any of the rules, be sure to 
    document all changes.    
 
2. Write a brief description of how your game works.  What is the goal.  How is the winner determine
      Remember that some of your classmates, and possibly me, may have never heard of your game, and we   
      need to understand how it works.  At this point you should be making notes about the classes you need and 
      the main steps in your Behavior Diagram. 
 
      3.  Design the forms as you play the game so that you get all the controls you want, arranged as you want.  One form 
           may be enough; multiple forms are also OK.
 
4.  Write out the Behavior Diagrams in a readable form.  In your behavior diagram: 
           a.   There should be a diagram for each form that reflects the behavior of your game simulation for that form. 
           b.  Try to catch every possible thing that can happen according to the rules of the game.

c.   Think about all the things that you need to do and decide which are critical to getting your game up and running in a reasonable way before Presentation Week (Mar 23-25). Then prune from your Behavior Diagram all the non-essential behavior paths – you can do some of these later as time permits.  Document the things you have pruned in a List of Things to Do As Time Permits.Be sure that your behavior diagram reflects ALL of the things that could happen (from A to Z) as the game is being played.  For Spring 2021, there is no lab on March 24th.

5.  Be sure to note in your behavior diagram every data entity (object) involved in your game.  These often show up
     as nouns in your BHD and game descriptions.  Turn in a ist of the classes you will use to model these entities.  
    lBe sure to include for each class: 
a.  A brief description of what the class models (its purpose)
b.  A list of the data stores (attributes - fields and properties) with the name of the data store
and a brief description of the intended use of each
c.  A list of exceptions to be handled.
d.  The name of each method with a brief description of its purpose.
e.  A first cut at a list of arguments and a return value for each method should be provided 
where possible.

     Use meaningful names for both methods and attributes. Method names should almost always consist of a
     verb and a noun.
  Please keep the above 5 sections separate for readablility.


      6. Finally, be sure to provide a list of the things you would do if you have the time, but will not do in the
    initial working version of your game.
    
 

 (Note: Homework problems (except for the code in this case) are to be turned in to the instructor, not the lab assistant.)