def __init__(self, grid, type, unit_id): if unit_id >= 0 and unit_id < 9: self.__unit_id = unit_id self.__type = type # 初始化组内格子的引用 if self.__type == 0: # row self.__cells = [ grid.cell(i) for i in range(81) if convertor.id2Row(i) == self.__unit_id ] elif self.__type == 1: # box self.__cells = [ grid.cell(i) for i in range(81) if convertor.id2Box(i) == self.__unit_id ] elif self.__type == 3: # column self.__cells = [ grid.cell(i) for i in range(81) if convertor.id2Column(i) == self.__unit_id ] else: self.__cells = [] print "UNITTYPE is not defined!" del self else: print "The unit_id is not exist!" del self
def relationCell(self, cell_id): row = convertor.id2Row(cell_id) column = convertor.id2Column(cell_id) box = convertor.id2Box(cell_id) relation = [convertor.RC2id(row, i) for i in range(9)] relation += [convertor.RC2id(i, column) for i in range(9)] relation += [convertor.BA2id(box, i) for i in range(9)] relation = list(set(relation)) relation.remove(cell_id) relation.sort() return [self.cell(i) for i in relation]
def __init__(self, grid, type, unit_id): if unit_id >= 0 and unit_id < 9: self.__unit_id = unit_id self.__type = type # 初始化组内格子的引用 if self.__type == 0: # row self.__cells = [grid.cell(i) for i in range(81) if convertor.id2Row(i) == self.__unit_id] elif self.__type == 1: # box self.__cells = [grid.cell(i) for i in range(81) if convertor.id2Box(i) == self.__unit_id] elif self.__type == 3: # column self.__cells = [grid.cell(i) for i in range(81) if convertor.id2Column(i) == self.__unit_id] else: self.__cells = [] print "UNITTYPE is not defined!" del self else: print "The unit_id is not exist!" del self
def gCP(self, cell_id): row = str(convertor.id2Row(cell_id) + 1) column = str(convertor.id2Column(cell_id) + 1) id = str(cell_id) return id + "( R" + row + " C" + column + " )"
def getUnitDict(self): row = convertor.id2Row(self.__id) box = convertor.id2Box(self.__id) column = convertor.id2Column(self.__id) return {UNITTYPE[0]: row, UNITTYPE[3]: column, UNITTYPE[1]: box}