Changeset 103

Show
Ignore:
Timestamp:
03/21/04 13:31:34 (5 years ago)
Author:
ug
Message:

Fix pattern search

Location:
06/devel
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • 06/devel/algosPY.py

    r102 r103  
    196196        numOfOccurrences = 0 
    197197 
     198        # print final position: 
     199 
     200        # for i in range(19): 
     201        #     for j in range(19): 
     202        #         if not (self.finalpos[index*100 + (i/2) + 10*(j/2)] & (1 << (2*(j%2 + 2*(i%2))))): print 'X', 
     203        #         elif not (self.finalpos[index*100 + (i/2) + 10*(j/2)] & (1 << (2*(j%2 + 2*(i%2))+1))): print 'O', 
     204        #         else: print '.', 
     205        #     print 
     206 
    198207        while not index is None: 
    199208 
     
    207216                        
    208217                pattern = patternList.get(N) 
    209                 for a0 in range(pattern.anchors[0][1], pattern.anchors[1][1]+1): 
    210                     for a1 in range(pattern.anchors[0][0], pattern.anchors[1][0]+1): 
     218                # print 'next pattern' 
     219                # pattern.printPattern() 
     220                # print 
     221                for a0 in range(pattern.anchors[0][0], pattern.anchors[1][0]+1): 
     222                    for a1 in range(pattern.anchors[0][1], pattern.anchors[1][1]+1): 
    211223                        matches = 1 
     224 
     225                        # print 'a0', a0, 'a1', a1 
    212226                                     
    213227                        pIndex = 2*(a1%2) + (a0%2) 
    214                         patternBits = pattern.bits[pIndex]                                 
     228                        patternBits = pattern.bits[pIndex] 
     229 
    215230                        pbIndex = 0 
    216231                        fpIndex = index*100 + a1/2 + (a0/2)*10 
     
    223238                            for y in range(length): 
    224239                                pbIndex += 1 
     240                                # print 'pbIndex', pbIndex 
     241                                # for i in range(2): 
     242                                #     for j in range(2): 
     243                                #         if patternBits[pbIndex] & (1 << (2*(j + 2*i))): print 'X', 
     244                                #         elif patternBits[pbIndex] & (1 << (2*(j + 2*i)+1)): print 'O', 
     245                                #         else: print '.', 
     246                                #     print 
     247                                # print 'compare with', fpIndex 
     248                                # for i in range(2): 
     249                                #     for j in range(2): 
     250                                #         if not (self.finalpos[fpIndex] & (1 << (2*(j%2 + 2*(i%2))))): print 'X', 
     251                                #         elif not (self.finalpos[fpIndex] & (1 << (2*(j%2 + 2*(i%2))+1))): print 'O', 
     252                                #         else: print '.',  
     253                                #     print 
    225254                                if (patternBits[pbIndex] & self.finalpos[fpIndex]): 
    226255                                    matches = 0 
  • 06/devel/patternPY.py

    r102 r103  
    4040        if self.left != p.left or self.right != p.right or self.top != p.top or self.bottom != p.bottom: return 1 
    4141        if self.moveOne != p.moveOne: return 1 
    42         for i in range(self.sizeX): 
     42        for i in range(self.sizeX*self.sizeY): 
    4343            if self.initialPos[i] != p.initialPos[i]: return 1 
    4444        if self.contList != p.contList: return 1 
     
    169169        self.boardsize = boardsize 
    170170        self.data = self.patternList() 
     171 
     172 
    171173         
    172174    def invertColor(self,co): 
     
    249251            pNew.flip = ii 
    250252 
    251             if not pNew in l: l.append(pNew) 
     253            if not pNew in l: 
     254                l.append(pNew) 
     255                print 'ACCEPTED' 
    252256            if pNew == self.pattern: symmetries.append((ii,0)) 
    253257   
     
    273277                pNew1.colorSwitch = 1 
    274278 
    275                 if not self.fixedColor and not pNew1 in lCS: lCS.append(pNew1) 
     279                if not self.fixedColor and not pNew1 in lCS: 
     280                    lCS.append(pNew1) 
     281                    print 'ACCEPTED CS' 
    276282                if pNew1 == self.pattern: 
    277283                    if not self.fixedColor: symmetries.append((ii,1))