Exemple #1
0
        private SnakeAction RandomMove(GameBoard gameBoard)
        {
            var random          = new Random();
            var currentPosition = gameBoard.GetMyHead();

            do
            {
                var        direction    = (Direction)random.Next(Enum.GetValues(typeof(Direction)).Length - 1);
                BoardPoint nextPosition = currentPosition.Value;
                switch (direction)
                {
                case Direction.Down:
                    nextPosition = currentPosition.Value.ShiftTop();
                    break;

                case Direction.Left:
                    nextPosition = currentPosition.Value.ShiftRight();
                    break;

                case Direction.Right:
                    nextPosition = currentPosition.Value.ShiftLeft();
                    break;

                case Direction.Up:
                    nextPosition = currentPosition.Value.ShiftBottom();
                    break;

                case Direction.Stop:
                    continue;
                    break;
                }
                if (gameBoard.IsBadThingAt(nextPosition))
                {
                    continue;
                }
                return(new SnakeAction(false, direction));
            } while (false);
            var act = random.Next() % 2 == 0;

            return(new SnakeAction(false, Direction.Right));
        }