Zachary Rauen 0384482

Use Case Name: / Initialize Game
Actor(s): / Player 1
Preconditions: / None
Post-conditions: / Game mode
Flow of events: / This use case allows the user to choose the game mode. It goes through a user friendly interface allowing the user to choose if it will be 2 players or them versus the computer.
Use Case Name: / Setup Board
Actor(s): / Player 1, Player 2, Watson
Preconditions: / Game Mode
Post-conditions: / Board layout
Flow of events: / This use case allows the two players, depending on the game mode, to choose where they want their ghosts. For the two ‘players’ they choose the places. For the ‘AI,’ named Watson, his will be chosen randomly.
Use Case Name: / Take turn
Actor(s): / Player 1, Player 2, Watson
Preconditions: / Initialize and Setup must have been completed
Post-conditions: / The board will need updating
Flow of events: / This use case allows the user to take their turn. Essentially they just choose where to move their ghosts to. This use case also must check for bad movement, meaning trying to move on top of their own ghost and checking if they really want to capture the other ghost or exit the playing field.
Use Case Name: / Board Update
Actor(s): / Computer
Preconditions: / Turn must be taken
Post-conditions: / None
Flow of events: / This use case is for the computer only. This updates the board according to what was input by the user.
Use Case Name: / Winner Check
Actor(s): / Computer
Preconditions: / Game must be playing
Post-conditions: / Winner
Flow of events: / In this use case, the computer will be constantly checking to see if any of the conditions are met to be a winner, if there are, the game will be ended and the winner will be declared.
Actor Name: / Player 1
Description: / This is the user that starts the game. This player will be in charge of choosing if it will be player versus player or player versus computer. This player will also be allowed to take turns during the game after setting up their board.
Actor Name: / Player 2
Description: / This actor only occurs when the first player chooses human versus human mode. In that case, this player is allowed to choose their game piece position and take turns.
Actor Name: / Watson
Description: / This is the ‘artificial intelligence’ of the game. He occurs in Human versus computer mode. His board set up and turn taking will be done using randomization.
Actor Name: / Computer
Description: / This actor does all the work in the background such as updating the board and checking for a winner of the game.
Case Testing: / Initialize Game
Using: / Unexpected inputs
Expected Result: / The desire is that a message will output saying it was invalid input and suggest input for the user.
Case Testing: / Setup Board
Using: / Unexpected inputs, out of range numbers
Expected Result: / For these uses and error message will output saying either “invalid input” or that the desired position on the board was out of range.
Case Testing: / Take Turn
Using: / Unexpected inputs, out of range numbers, occupied spots, exit
Expected Result: / For unexpected inputs, an error. For out of range numbers, reiterate the range of the board. For an occupied spot there are two possibilities. It will either confirm the capture of an enemy ghost or it will tell you that you cannot stack ghosts. For an exit, it will confirm that you wish to do so.
Case Testing: / Board update
Using: / None
Expected Result: / There are no inputs, it just returns the updated board.
Case Testing: / Winner Check
Using: / The proper inputs
Expected Result: / If the use case does not declare a winner on any of the circumstances the algorithm will need to be adjusted accordingly.