pygame编写简单消消乐心得体会记录

pygame编写简单消消乐心得体会记录

    • 检查是否有需要消除的动物及三消及以上算法
    • 判断死图算法

我写的这个程序很大部分是借鉴了CSDN的另一位博主,在他的基础之上我加上了我的理解。(https://blog.csdn.net/guozirui12/article/details/87180480)

检查是否有需要消除的动物及三消及以上算法

思想是从数组的左上方开始遍历,向左读两个看是否都是同一种动物,如果是则存入队列中,当程序继续向左遍历的时候就会达到三消以上的结果,往下方遍历同理,代码如下:
1.-2是因为数据可能溢出报错。
2.我写的可能不是很好望指出改正。
3.其实这根本算不上算法只是我突然在看代码时的灵机一动。
4.建议想尝试编写简单游戏的兄嘚们在设计关卡时需要将数组建大一点,否则像这个三消算法我都需要-2,后面的判断死图算法也会臃肿的一逼。

        for i in range(0, self.anim_frame.row):
            for j in range(0, self.anim_frame.col-2):
                if self.anim_frame.animal[i][j] != -1:
                    if self.anim_frame.animal[i][j] == self.anim_frame.animal[i][j+1] == self.anim_frame.animal[i][j+2]:
                        if [i, j] not in position:
                            position.append([i, j])
                            self.van_animal[self.anim_frame.animal[i][j]] += 1
                        if [i, j+1] not in position:
                            position.append([i, j+1])
                            self.van_animal[self.anim_frame.animal[i][j+1]] += 1
                        if [i, j+2] not in position:
                            position.append([i, j+2])
                            self.van_animal[self.anim_frame.animal[i][j+2]] += 1
        for i in range(0, self.anim_frame.row-2):
            for j in range(0, self.anim_frame.col):
                if self.anim_frame.animal[i][j] != -1:
                    if self.anim_frame.animal[i][j] == self.anim_frame.animal[i+1][j] == self.anim_frame.animal[i+2][j]:
                        if [i, j] not in position:
                            position.append([i, j])
                            self.van_animal[self.anim_frame.animal[i][j]] += 1
                        if [i+1, j] not in position:
                            position.append([i+1, j])
                            self.van_animal[self.anim_frame.animal[i+1][j]] += 1
                        if [i+2, j] not in position:
                            position.append([i+2, j])
                            self.van_animal[self.anim_frame.animal[i+2][j]] += 1

判断死图算法

由于设计的失误我这个巨臃肿且效率极低,各位可以去我上面标注的博主哪里去看。
其余很多东西哪位博主也有比较独到的见解。

你可能感兴趣的:(练手项目)