一尘不染

检查连接四个字段的算法

algorithm

我想知道在四连环比赛中检查获胜者的最佳方法是什么。

我对你们的想法感兴趣,并且是否对这种问题有某种“知名”算法?

解:

我用Python实现了Ardavan的哈希表解决方案。

我让算法遍历每个字段一次。在我的Intel(R)CoreTM2 Duo CPU T9600 @ 2.80GHz上,我的实施的最佳检查时间为0.047
ms,最差的为0.154 ms,平均为0.114 ms。这足够快以满足我的需求,而且算法对我来说似乎很整洁。


阅读 181

收藏
2020-07-28

共1个答案

一尘不染

每个单元最多只能归属12个获胜组合。(4个水平,4个垂直和4个对角线)。每个组合将有4个单元,包括正在考虑的单元。对于靠近侧面的电池,这些数字将更低。因此,预编译这些组合并存储相关单元格哈希值的哈希值将使一次单打获胜是有意义的。这样,在每个单元格成为玩家之后,您只需拔出相关的组合/单元格来检查它是否是赢家。

2020-07-28