继续pygame实现俄罗斯方块游戏(AI篇1)的代码更新
一、消除后才做评价
上一篇我们是对方块落下的位置和落下后出来的空洞进行了评价,但是这些评价都是没有计算消除的,以至于机器人现在不会考虑去进行那些完全不会留下空洞的消除,比如下面这种消除。
但我们知道这种消除是不会产生空洞的。
所以我们要在计算评价的时候最好计算消除以后的评价。
我们只要在Matrix的函数里加一个do_clear函数来进行消除
def do_clear(self):
for i in range(self.rows-
上篇更新到pygame实现俄罗斯方块游戏(AI篇2) ,原本应该继续做优化,不过考虑到完成游戏完整性,这张就先把对战做好。
一、对战的方块管理
定义一个BlockManage管理对战的方块
class BlockManage(object):
pnum=1
blocks = []
def __init__(self,pnum):
self.pnum=pnum
self.blocks=[[] for i in range(self.pnum)]
def get_block(self,