我最近偶然发现了游戏2048。你通过向四个方向中的任何一个移动来合并类似的瓷砖,以制作“更大”的瓷砖。每次移动后,一个新的瓷砖出现在随机的空位置,值为2
或4
。当所有的盒子都填满并且没有可以合并瓷砖的移动时,游戏就结束了,或者你创建一个值为2048
的瓷砖。
首先,我需要遵循一个明确的策略来达到目标。所以,我想为它写一个程序。
我目前的算法:
while (!game_over) {for each possible move:count_no_of_merges_for_2-tiles and 4-tileschoose the move with a large number of merges}
我正在做的是在任何时候,我将尝试合并值为2
和4
的图块,也就是说,我尝试尽可能少地拥有2
和4
的图块。如果我这样尝试,所有其他图块都会自动合并,策略看起来不错。
但是,当我实际使用这个算法时,在游戏结束前我只得到大约4000分。AFAIK的最大分数略高于20,000分,这比我目前的分数要大得多。有比上述更好的算法吗?