让我们说一个Connect4游戏的状态存储为12341
,这意味着玩家1将球丢到位置1,然后玩家2放到位置2,玩家1放到位置3,玩家2放到位置4,玩家1再次位于位置1。
在这种格式下,有一种算法可以知道游戏是否获胜,这种方法比转换成二维矩阵并使用SO中已列出的算法更好,例如{{3} }?
答案 0 :(得分:2)
游戏连通性的特征在于,最有效的方法是转换为2D范例以检查获胜情况。对于大多数人来说,最快的方法是检查所有方向上的当前移动,以查看它是否刚刚赢得了胜利。
您 可以通过保留“实时”行的列表(可能的未来获胜者)并检查最近的移动延伸到哪些行,从而在某种程度上改善检查的“智能”程度。块。
请注意,这对于编码和维护而言都是不太明显的方法。而且,它比检查所有方向上的当前移动要慢。仅当用于创建自动播放器(AI)时,它才真正有用。