【发布时间】:2011-08-11 21:35:09
【问题描述】:
我想知道在连接四字段中检查获胜者的最佳方法是什么。
我对你们的想法很感兴趣,是否有一些“众所周知”的算法可以解决这类问题?
解决方案:
我用 Python 实现了 Ardavan 的哈希表解决方案。
我让算法在每个字段上运行一次。在我的 Intel(R) Core(TM)2 Duo CPU T9600 @ 2.80GHz 上,我实现的最佳检查时间为 0.047 毫秒,最差为 0.154 毫秒,平均为 0.114 毫秒。这对我的需求来说已经足够快了,而且算法对我来说似乎很简洁。
【问题讨论】:
-
您是要在多次播放后检查,还是逐次检查?
-
我对你的问题有点不确定,但我认为既然它是连接四个,你必须在每转一圈后检查,不是吗?也许不是在前 6 轮,但至少在第 7 轮。
-
是的,但是在玩棋子时检查比在游戏结束后检查整个棋盘更受限制。
-
看了第一个答案,我明白你的意思了。我想更好的方法是轮流进行,而不是一遍又一遍地整个领域。
-
在这种情况下,算法很大程度上取决于您使用的语言。如果您的语言支持它,您将使用:模式匹配、列表推导、旋转、指针等。
标签: algorithm