我在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