public bool CanMove(EnvironmentAgent agent) { var newX = agent.X + agent.Vector.X * agent.Speed; var newY = agent.Y + agent.Vector.Y * agent.Speed; if (newX <= 5 || newX >= Width - 5) { return(false); } if (newY <= 5 || newY >= Height - 5) { return(false); } return(true); }
public GameEnvironment(EnvironmentOptions options) { Random = new Random((int)DateTime.Now.Ticks); Agents = new List <EnvironmentAgent>(); Foods = new List <Food>(); Width = options.FieldWidth; Height = options.FieldHeight; for (int i = 0; i < options.AgentsCount; i++) { var color = Color.FromArgb(Random.Next(0, 255), Random.Next(0, 255), Random.Next(0, 255)); var agent = new EnvironmentAgent(Random.Next(0, Width), Random.Next(0, Height), Random.Next(0, 360), color, options.NeuralNetwork); Agents.Add(agent); } for (int i = 0; i < options.FoodCount; i++) { var food = new Food(Random.Next(0, Width), Random.Next(0, Height)); Foods.Add(food); } }