using System.Collections.Generic; using Microsoft.Xna.Framework; namespace V3.AI { /// /// A computer player that takes actions according to a specified strategy. /// public interface IAiPlayer { /// /// The current world view of the player. It stores the knowledge of /// the computer player based on the previous percepts. /// IWorldView WorldView { get; } /// /// The strategy of the player. The strategy is a state machine that /// defines the current state. /// IStrategy Strategy { get; } /// /// The current state of the player. The state is one step of the /// strategy, and defines the specific actions to take. /// AiState State { get; set; } /// /// The actions that the player wants to be executed. Updated by /// Act. /// IList Actions { get; } /// /// Executes one update cycle -- perception, acting and the execution /// of actions. /// /// the time since the last update void Update(GameTime gameTime); /// /// Update the AI's view of the game world. /// void Percept(); /// /// Take actions based on the previous percepts, the current strategy /// and state. Updates the list of actions stored in Actions. These /// should be executed by the caller. /// void Act(); } }