Individual Responsibility Agreement

Jobs:

Initialization – Jackson 

Board – Charlie 

Game Logic – Ryan 

Computer/AI – Zach 

 

Explanation of Roles:

Initialization – 

Produce the user ship placement and the computer ship placement. Have the user input coordinates through the command line for the ships and if there is time, try to do user input through the figure (using ginput). Should give a matrix containing each ship position and orientation that the Board role will use to place the ships correctly. 

Board –   

Takes in the data from the initialization step to create a matrix of the board. Also will need to create the figure for the board using images and also to produce functions that can change individual images depending on what needs to be changes. Should be able to abstract away the matrix editing for Computer/AI and Game Logic.  

Game Logic –  

Main loop for the game. This should operate everything past initialization. It takes in the user input and operates on it then takes in the computer input and operates on it. Should determine when the game is completed. Should produce the function for the action done every turn (I.e. Is a ship hit? Is a ship sunk?, if so, change the matrix accordingly). 

Computer/AI – 

Creates the computer/AI. There needs to be a user-like role that it has in shooting. If it hits a ship, it should go up, then down, then left, then right until it finds where the ship is (there’s a better way to do which direction to go). Have it set flags as it goes till it finds where ships are. If it finds a ship in a quadrant, prioritize other quadrant after destroying the first ship. Maybe create multiple difficulty levels that enables or disables certain features for making the computer harder. Have following the ship be Easy, corner prioritization be Medium and shooting diagonal for finding ships on Hard.