Assignment title: Information


Week #3 OO Design Our battleships game needs several different kinds of ship – we need a type to store the ships and information about it. Create a base class called Ship Create child classes for each of the ship types in the game (https://en.wikipedia.org/wiki/Battleship_(game)#Description) that inherit from Ship Ships should have the following properties  A private array of positions o A Position is composed of an X and Y coordinate – you should create a struct to encapsulate this  A read only length o The constructor for each inherited type should set this to the correct length for the ship type  A read only color to be drawn in o The constructor for each inherited type should set this to a different ConsoleColor for drawing  A flag called Sunk o This should default to false for all ships  A property called IsBattleship o This property should be overridden by each child type. Only the BattleShip should return true.  A method called Reset o This method should reset the members to their empty defaults  A method called Place(Position start, Direction direction) o Direction should be an enumeration of either Horizontal or Vertical o This will complete the Position array with the set of coordinates that the ship is covering e.g Place(new Position(1, 1), Direction.Horizontal) on a patrol boat will fill the array with the points (1, 1) and (2, 1) Notes:  This is a separate program from previous weeks. You do not need to consider or implement anything to do with the grid or guessing  You should choose the correct types and access modifiers for each type. Create a test program that can run code such as the following: AircraftCarrier ac = new AircraftCarrier(); Console.WriteLine(ac.IsBattleShip); ac.Place(new Position(1, 1), Direction.Horizontal); ac.Reset(); You should write additional code to test all of the methods and ship types. Given that the positions array is private how can you test that the values are correct?