Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
        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()