The AI Components which form the model processing chain.
Actions that agents may execute.
Objects used for holding model information.
State and State Machine classes for the AgentAction AI Component.
Value types used to store percept info.
The origianl classes provided for the coursework.
IN3044 Coursework - Created by James Frost and Raghav Narula
Our solution for this coursework is designed around the concept of a one-way data flow. Our model is re-created at every simulation step. The process begins with the server sending our ControllerPlayer information via the info* methods. Once all the information is gathered into a Percept, a new model object is created. This model object is passed sequentially through a chain of "AI Components" (in package ai) that implement the IChainable Interface via the ai.AbstractSimpleAIComponent abstract class.
Each component is responsible for adding more information in to the model by using information contained in the percept. This could be simple information such as the current play mode, or involve more complex calculations such as to determine the agent's current location.
By the time the model has passed through all the components the model should contain enough information to determine what set of actions need to be executed. Actions are executed in the final component, the AgentActionAIComponent. Here the state design pattern is used to organise the agent's behaviour.
The concept is illustrated in the diagram below.