public void SetupRandom(int qty, ISnakeBehavior behavior) { snakes = new List <Snake>(); for (var i = 0; i < qty; i++) { snakes.Add(new Snake { Behavior = behavior, }); } Loser = null; space = new Space(SPACE_X, SPACE_Y); // Place snakes in space var rand = new Random(); foreach (var snake in snakes) { snake.X = rand.Next(SPACE_X); snake.Y = rand.Next(SPACE_Y); snake.Direction = (Direction)rand.Next(3); // If snake placed in borders ensure a safe direction foreach (Direction dir in new[] { 0, 1, 2, 3 }) { if (snake.WillHitNextStep(space)) { snake.Direction = dir; } else { break; } } } }
public void SetupAddSnake(int x, int y, Direction direction, ISnakeBehavior behavior) { var snake = new Snake { Id = snakes.Count + 1, X = x, Y = y, Direction = direction, Behavior = behavior, }; snakes.Add(snake); }