private void TestStrategy(IPlacementStrategy strategy, int expectPiecesPlaced) { var pieces = new PieceCollection(); pieces.Populate(SimulationHelpers.GetRandomPieces(1)); int placed = 0; var board = new BoardState(); for (var i = 0; i < pieces.Count; i++) { if (strategy.TryPlacePiece(board, PieceDefinition.AllPieceDefinitions[pieces[i]], in pieces, i + 1, out var bitmap, out var x, out var y)) { placed++; board.Place(bitmap, x, y); }
public void PlacePiece(SimulationState state) { if (_strategy.TryPlacePiece(state.PlayerBoardState[state.PieceToPlacePlayer], state.PieceToPlace, in state.Pieces, state.NextPieceIndex, out var bitmap, out var x, out var y)) { state.PerformPlacePiece(bitmap, x, y); }