예제 #1
0
        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;
                    }
                }
            }
        }
예제 #2
0
        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);
        }