我正在尝试用 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)