小编lar*_*rso的帖子

瓦片合并算法2048游戏

我正在尝试用 C 重新创建游戏 2048,但我无法让算法将图块移动或合并在一起以正常运行。在最初的 2048 游戏中,您可以像这样将瓷砖移动到一起:

 2 | 2 | 4 | 4                             4 | 8 |   |   
---+---+---+---  *swipes to the left* ->  ---+---+---+---
 8 |   | 8 |                               16|   |   |
Run Code Online (Sandbox Code Playgroud)

因此,两个相同的图块可以合并为一个大小两倍的图块。我的版本几乎相同,但我没有使用数字,而是使用在合并时递增 1 的字符,因此[A|A]会合并到[B]等。我这样做只是为了不必处理不同大小的图块。

所以我的电路板被存储为一个 4*4 字符数组,我称之为 grid(我知道可能有点多余)

typedef struct grid {
    char tiles[4][4];
} Grid;
Run Code Online (Sandbox Code Playgroud)

我试图让算法向上、向下、向左和向右移动和合并,但它们无法正常工作。

void pushLeft(Grid * grid)
{
    int i, j, k;
    for(i = 0; i < 4; i++) //Row number i
    {
        for(j = 1; j < 4; j++) …
Run Code Online (Sandbox Code Playgroud)

c algorithm

5
推荐指数
1
解决办法
6843
查看次数

标签 统计

algorithm ×1

c ×1