public void GetEmptyGridSquares_should_return_all_squares_not_containing_snake_or_last_food()
        {
            // Arrange
            var gridDescription     = new GridDescription(2, 3, 3);
            var randomGenerator     = new Random();
            var randomFoodGenerator = new RandomFoodGenerator(gridDescription, randomGenerator);

            var snakePositions = new List <Vector2>
            {
                new Vector2(1, 0),
                new Vector2(0, 0),
                new Vector2(0, 1),
                new Vector2(0, 2)
            };

            var foodPosition = new Vector2(2, 1);

            var expectedEmpty = new List <Vector2>
            {
                new Vector2(1, 1),
                new Vector2(1, 2),
                new Vector2(2, 0),
                new Vector2(2, 2)
            };

            // Act
            var actualEmpty = randomFoodGenerator.GetEmptyGridSquares(snakePositions, foodPosition);

            // Assert
            Assert.IsTrue(expectedEmpty.SequenceEqual(actualEmpty));
        }
Esempio n. 2
0
 public PuzzleSolver(
     Grid grid,
     GridDescription gridDescription,
     Action <SolutionStats, IEnumerable <MatrixRow> > solutionFoundHandler,
     Action <SolutionStats> noSolutionFoundHandler,
     Action <SolutionStats> updateSolutionStatsHandler,
     IDispatcher dispatcher,
     CancellationToken cancellationToken)
 {
     _grid                       = grid;
     _gridDescription            = gridDescription;
     _solutionFoundHandler       = solutionFoundHandler;
     _noSolutionFoundHandler     = noSolutionFoundHandler;
     _updateSolutionStatsHandler = updateSolutionStatsHandler;
     _dispatcher                 = dispatcher;
     _cancellationToken          = cancellationToken;
 }
 public SnakeControllerInputs(IReadOnlyList <Vector2> snakePositions, Vector2 foodPosition, GridDescription gridDescription)
 {
     SnakePositions  = snakePositions;
     FoodPosition    = foodPosition;
     GridDescription = gridDescription;
 }