Exemple #1
0
    def run(self, autoFill=True, bCheckFromDefault=True):
        """
        bCheckFromDefault : False -> use self.num to check, should confirm self.num is correctly
        """
        if not autoFill:
            oriNum = deepcopy(self.num)

        if bCheckFromDefault:
            self.num = deepcopy(self.default_num)
        else:
            oriDefault = deepcopy(self.default_num)
            self.default_num = deepcopy(self.num)  # set num to default

        # set validList
        for x in app.rgLINE:
            for y in app.rgLINE:
                if self.num[x][y] == 0:
                    self.num[x][y].validList = self.getValidNum(x, y)

        ret = self._brute(0, 0)
        logger.info("ret=%s puzzle=%s", ret, util.puzzle2str(self.num))
        answer = self.num

        if not autoFill:
            self.num = oriNum
        if not bCheckFromDefault:
            self.default_num = oriDefault
        return answer
Exemple #2
0
 def getCurrentPuzzle(self, bString=False):
     if not bString:
         return deepcopy(self.num)
     else:
         return util.puzzle2str(self.num)
Exemple #3
0
 def getDefaultPuzzle(self, bString=False):
     if not bString:
         return deepcopy(self.default)
     else:
         return util.puzzle2str(self.default)