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)); }
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; }