Requirements for the sample code
When we develop applications, we usually have a set of requirements that we need to work towards. Our sample project in this chapter is no different. The following is a list of requirements for the vehicle types that we are creating:
- Our design will have three categories of vehicle: sea, land, and air. A vehicle may be a member of multiple categories.
 - Vehicles may move or attack when they are on a tile that matches any of the categories they are in.
 - Vehicles will be unable to move to or attack on a tile that does not match any of the categories they are in.
 - When a vehicle's hit points reach zero, the vehicle will be considered incapacitated. We will also need to keep all active vehicles in a single array that we can loop through.
 
As in Chapter 18, Object-Oriented Programming, in this chapter, we will demonstrate our design using a limited number of vehicles, knowing that the number of vehicle types will expand as we continue developing the game...