Slugs Incorporated is a game developer specialising in mollusc themed games for multiple platforms. Most of their games are twists on existing classic titles, and they have put together a proposal for a game they have called Battleslugs. You have been to develop a prototype of the game Battleslugs.
Battleslugs is very similar to the popular game Battleships. But, there is one significant difference between the two games. In Battleslugs, there are no fixed shapes for each of the two players. Instead, each player gets five slugs to place on a 12x12 board. Each of these slugs consists of five segments, but the arrangement of the segments is randomised for each game. The only rule is that each segment of the slug must be within an eight cell neighbourhood of the previous segment. The following examples are all valid slug configurations: See image.
The game progresses as follows:
1. Player one gets a set of five randomly generated slugs.
2. Player one places each in turn on the 12x12 grid.
a. The game should not let the player place a slug if it will overlap another.
3. Player two gets a set of five randomly generated slugs.
4. Player two places each in turn on the 12x12 grid.
a. The game should not let the player place a slug if it will overlap another.
5. The game begins, with each player taking a turn to fire salt at their enemy.
a. The player selects the grid co-ordinate of a square on the other players grid.
b. If they select a square which contains a slug, that segment of the slug is killed.
6. The game continues until all the slug segments of one player have been killed.
On each players turn they should see a display of where they have previously targeted on the opponents grid, and whether it was a hit or a miss. It should also provide a button that allows them to see their own grid, along with the state of each of their own slugs.
When the game is over, a win screen should be presented that shows: (1) the player who won; (2) how many shots each player took; (3) how many of each players shots were hits; and (4) the hit percentage of each player.
Your program will need to perform the following operations:
The program should fully meet the requirements of the brief as outlined above. The program algorithms should make effective use of all the available tools and should involve functions, loops, selection classes, objects and either array or string manipulation. 10 marks are available for the following: (1) Appropriate use of objects; (2) Handling user interaction; (3) Slugs setup; (4) Game Flow; and (5) Encapsulation and Abstraction.
Testing data should be sufficient to provide suitable coverage of all equivalence classes, and should use black box and white box testing to explore each function. The marks for this task are broken down as follows: (1) 10 marks for developing a test plan; (2) 10 marks for implementing a test plan; and (3) 5 marks for making effective use of exception handling.
A fully detailed UML diagram of their classes should be submitted. The marks for this task are broken down as follows: (1) 5 marks for class relationships; and (2) 20 marks for methods and attributes.