public IEnumerable <IReversiTurn> GetValidTurnsForBoard(IBoardState board) { var turnCandidates = board.GetEmptyEnemyNeighbours(); var result = new List <IReversiTurn>(); foreach (ICellCoordinates cell in turnCandidates) { var turn = this.TurnForCellOnBoard(cell, board); if (null == turn) { continue; } result.Add(turn); } bool isNoValidTurnsLeft = (0 == result.Count); if (isNoValidTurnsLeft) { return(null); } return(result); }