Implement a group of C++ classes that implement a Warzone player orders using the following design: Orders are created by the player during their turn and placed into the player’s list of orders. By default, each order is placed in the list sequentially. After orders are put in the list, the player can move them around in the list (using the move() method) or delete them (using the remove() method). The different kinds of orders are: deploy, advance, bomb, blockade, airlift, and negotiate. All orders must have a validate() method that verifies if the order is valid. All orders must have an execute() method that will result in some game action being implemented (see the project description document). Note that the orders’ actions do not need to be implemented at this point. Invalid orders can be created and put in the list, but their execution will not result in any action. All the classes/functions that you implement for this component must all reside in a single .cpp/.h file duo named Orders.cpp/Orders.h. You must deliver a file named OrdersDriver.cpp file that contains a free function named testOrdersLists() that creates a list of orders and demonstrates that the OrdersList implemented according to the following specifications:
[x] The OrdersList class contains a list of Order objects.
[x] Each kind of order is implemented as a subclass of the Order class.
[x] The Order class implements a stream insertion operator that outputs a string describing the order. If the order has been executed, it should also output the effect of the order, stored as a string.
[x] Every order subclass must implement the validate() method that is used to validate if the order is valid.
[x] Every order subclass must implement the execute() method that first validates the order, and executes its action if it is valid, according to the order’s meaning and the player’s state. The OrdersList class implements a remove() method that deletes an order from the list. The OrdersList class implements a move() method to move an order in the list of orders.
[x] A free function named testOrdersLists() that creates orders of every kind, places them in an OrdersList object, and demonstrates that the above features are available.
Implement a group of C++ classes that implement a Warzone player orders using the following design: Orders are created by the player during their turn and placed into the player’s list of orders. By default, each order is placed in the list sequentially. After orders are put in the list, the player can move them around in the list (using the move() method) or delete them (using the remove() method). The different kinds of orders are: deploy, advance, bomb, blockade, airlift, and negotiate. All orders must have a validate() method that verifies if the order is valid. All orders must have an execute() method that will result in some game action being implemented (see the project description document). Note that the orders’ actions do not need to be implemented at this point. Invalid orders can be created and put in the list, but their execution will not result in any action. All the classes/functions that you implement for this component must all reside in a single .cpp/.h file duo named Orders.cpp/Orders.h. You must deliver a file named OrdersDriver.cpp file that contains a free function named testOrdersLists() that creates a list of orders and demonstrates that the OrdersList implemented according to the following specifications: