Problem Statement

Fun And Games Incorporated is a casual gaming website that is looking to develop a series of Java programs that implement some games for their visitors. While they are keen to ensure their games are recognisable and popular, they are also wary of the growing litigiousness of modern society and are keen to make sure their games are ‘whiter than white’ as far as their design and implementation are concerned. Knowing that you are a budding expert in the field of Java, and a well-rounded computer person besides, they have come to you to produce one of their games.

What they are looking for in the first instance is a prototype of a fully fledged Java game. They are willing to leave the specifics of this up to you, but due to their internal corporate procedures they stress that the following things must be true:

  • The game must be fully object oriented, making appropriate use of inheritance, encapsulation and polymorphism.
  • The game should provide a ASCII front-end, but must also be designed in such a way that it could be delivered as a graphical game in the future. You can choose to use a graphical front-end now, but no extra marks are available for this.
  • The game must incorporate some degree of multi-threading, either in parcelling out work units or in ensuring the responsiveness of the graphical user interface.
  • The game must offer a suitable level of complexity – a game of snap is too simple, whereas a game of Scrabble would be okay.
  • The game must allow for some measure of saving and loading.
  • The game ‘engine’ should be as generic as possible. For example, if you are developing a game ‘like’ battleships then you should be able to later to use much of your code for any similar turn based 2D tile games.

The game can be ‘inspired’ by existing games (some suitable baselines would be bejewelled, chess, words with friends, boulderdash) but should not be direct copies. The quality of the artwork in the games is not important, but graphics should be used fully throughout to create the user interface.

You will need to test the game that you develop – games require a different kind of testing system to regular data driven applications, and as such you will have to consider carefully how often you test, what you test, and with how many people.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.