def boom(self): '''遍历所有的pattern,将5格,4格,3格的情况找出来,返回每种格数每种颜色消除的次数 ''' pt = Pattern() pts_5 = pt.get_by_name("5") pts_4 = pt.get_by_name("4") pts_3 = pt.get_by_name("3") pts_list = [pts_5, pts_4, pts_3] #结果存放每种pattern下,每种颜色消除的次数,作为返回值 cnt_boom = np.zeros((3, 5), np.int) #分格数(5,4,3格),颜色,统计当前消去各多少 for i, pts in enumerate(pts_list): for j, color in enumerate(COLOR): for cnt in self.match(pts, color): pass cnt_boom[i][j] = cnt #print(cnt_boom) return cnt_boom
print("-" * 10, "Test save/load") bd.paint() bd.save() bd.reinit(clean_backup=False) #测试时去掉清空备份的选项 bd.paint() bd.load() bd.paint() #Test match patterns if False: print("-" * 10, "Test match") for color in COLOR: print(" Color: %s" % COLOR[color]) bd.save() bd.paint() for cnt in bd.match(pt.get_by_name("3"), color): print(" Matched: %d" % cnt) #每种pattern找到了几个(看增量,叠加在之前的上) bd.paint() #退出迭代器后,应该将标记0的变化体现到原始矩阵上 bd.load() #Test boom if False: print("-" * 10, "Test boom") bd.save() bd.paint() res = bd.boom() #计算出每种格数,每种颜色,分别消除了多少次;同时把消除的格子标记0 bd.paint() #消除后的矩阵 print(res) #消除的次数(3*5矩阵表示结果) bd.load() #bd.paint()