private TwoByTwoResult Apply(Board board, Func <int, Cell[]> searchGroup, Func <Cell, int> searchID, Group isolateType, Group eliminateType) { for (int k = 0; k < CellInfo.numbers; k++) { TwoByTwoResult result = Apply(board, k, searchGroup, searchID, isolateType, eliminateType); if (result != null) { return(result); } } return(null); }
public override StrategyResult Apply(Board board, ref string outInfo) { TwoByTwoResult result = Apply(board, board.GetRow, cell => cell.Column, Group.Row, Group.Column); if (result != null) { return(result); } result = Apply(board, board.GetColumn, cell => cell.Row, Group.Column, Group.Row); if (result != null) { return(result); } return(null); }