我在javascript写一个四维4-IN-A-行游戏的游戏所有获奖行的列表。你可以看到它here。我想执行检查胜利。我怎样才能构建四维4-IN-A-排
为了节省时间,我打算建立事前所有更多钞票制胜模式列表,这对于一个赢得遍历这个列表的琐碎工作检查。
我遇到的麻烦是如何构建这个列表。获胜线的组包括:
[[0, x, y, z], [1, x, y, z], [2, x, y, z], [3, x, y, z]]
对于所有的x,y和z
[[w, 0, y, z], [w, 1, y, z], [w, 2, y, z], [w, 3, y, z]]
所有W,Y和Z
[[w, x, 0, z], [w, x, 1, z], [w, x, 2, z], [w, x, 3, z]]
所有W,X和Z
[[w, x, y, 0], [w, x, y, 1], [w, x, y, 2], [w, x, y, 3]]
所有W,X和Y
然后
[[0, 0, y, z], [1, 1, y, z], [2, 2, y, z], [3, 3, y, z]]
所有y和z
[[0, 3, y, z], [1, 2, y, z], [2, 1, y, z], [3, 0, y, z]]
所有y和z
正如你所猜测的,这个列表会继续。本质上,规则是一组坐标(例如,在x坐标)的集合必须是序列[1,2,3,4],而其他为任一序列[1, 2, 3, 4]
,[4, 3, 2, 1]
,或者[n, n, n, n]
。
如何赫克我可以构建这个名单? ....
备注:如果你有一个算法来构造这个列表,那么相同的算法是否可用来直接检查获胜条件? :) – Yoshi 2012-02-02 11:04:30
@Yoshi:是的,但运行一次算法会更快,然后使用缓存结果。 – Eric 2012-02-02 11:29:32
如果目的是检查游戏是否结束?我不确定这是最好的方法 – 2012-02-02 12:19:58