Assignment X - Game Project

Due: Thurs, Dec 5 (FINAL DEADLINE, NO LATE SUBMISSIONS ACCEPTED).

Objective

Programming in Java involves not only understanding the syntactic rules and constructs of the language, but also the ability to research the libraries that are needed for a task, as well as organizing good object-oriented design. The Java API is very large and has many pre-built features. After this assignment, you will have some experience looking into existing Java libraries and designing a small program using object-oriented techniques.

Task

For this assignment, you will design and implement a game in Java. This project may be done in groups of 2 people each, or it may be done solo (if you don't want to work with another person). The final deliverables will be due at the end of the term. If working with a partner, a bit more will be expected overall, since it would be a 2-person effort.

Details

  1. You may choose from a variety of board games or 1-player solo games listed here. Each of these has been deemed at an appropriate level for this project.
     
  2. The minimum requirement is to write a game with a graphic interface as a Java application, which can be played by 1 or more human players on the computer. It should have an intuitive and usable interface, and it should implement the standard set of rules for your chosen game. In the event that you have a game with some rule variations, you should include information in your README file (described below) that clarifies what version of the rules you are implementing.
     
  3. General Guidelines for Grading: Since you have the freedom to implement the design, grading for this project will be somewhat subjective. However, here are some guidelines I will be using:
     
  4. Guidelines for researching resources
     
  5. Extra Credit Opportunities -- I'm leaving this wide open. There will be plenty of chances to earn extra credit on this assignment. Anything above and beyond the minimum requirements can be done for extra credit. Be sure to list anything extra you do in your README file, so I know to look for it. Here are just a few possible things you could try, just to give you some ideas (but certainly not limited to these):
     

Resources


Deliverables:

You should pack all relevant files for your program into one jar file (named hwx.jar). The jar file should contain: Your jar file should also be runnable. This means that if you wrote it as an application, I should be able to play your game with the command:
  java -jar hwx.jar
Possible exception: If you happen to do anything that involves multiple programs (like a client/server implementation), then you can pack those as separate runnable jar files, then put those into the main archive. Make sure any such details are noted in your README.

If you are working with a partner, each of you should keep an individual log of your own contributions to the project.

Submit your assignment via the Canvas submission links.
If working with a partner, only ONE student in the group needs include the jar file at their Canvas submission link (but do make sure both names of group members are included in your submission's README file). However each partner should individually submit their own log file of contributions/work performed to their own Canvas submission link.
Example:

Remember to INCLUDE YOUR SOURCE CODE in your jar file!