我正在用 C 编写一个 2048 游戏副本。但我无法弄清楚游戏结束功能。我有这个结构:
typedef struct struct_BLOCO
{
int valor;
int cor;
int x, y;
} BLOCO;
这是我给棋盘坐标的函数:
void GiveBlocksCoordinates(BLOCO bloco[16])
{
int i, j, cont = 0;
for (i = 0; i < MAX; i++)
{
for (j = 0; j < MAX; j++)
{
bloco[cont].x = (j * 8) + X_INI;
bloco[cont].y = (i * 4) + Y_INI;
cont++;
}
}
}
只需使用使用值 bloco[i].[x]/[y] 的函数将它们放在屏幕上。这是我的“GameOver”函数,在其当前状态下: PS:“quant”整数接收 16 值。如果一个块是空的,则它的值为 0。如果是“游戏结束”,则函数返回 1。
int acabouJogo(BLOCO vec[], int quant)
{
int i, j, x, y, cont = 0, BlocosOcupados = 1;
for (i = 0; i < quant; i++)
if (vec[i].valor != 0)
BlocosOcupados++;
if (BlocosOcupados == quant)
{
for (x = 0; x != 16; x = x + 4)
{
while (cont < 3)
{
if (vec[x + cont].valor != vec[(x + cont) + 1].valor)
cont++;
else
return 0;
}
cont = 0;
}
for (x = 0; x < 4; x++)
{
while ( (cont + x) != (12 + x) )
{
if (vec[x + cont].valor != vec[(x + cont) + 4].valor)
cont = cont + 4;
else
return 0;
}
cont = 0;
}
}
else
return 0;
return 1;
}
你们能帮帮我吗?对不起我的英语不好。
谢谢。