2048的界面是4*4的矩阵,用一个简单的循环先将界面函数做出来
//显示游戏界面
void showui(int buf[4][4])
{
int i,j;
for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
printf("%5d",buf[i][j]);
printf("\n");
}
}
在这款游戏中,每进行一次操作都有一个“2或4”随机出现在4*4矩阵中没有数字的随机位置,所以可以封装一个函数,表示“2或4”出现在矩阵的随机一个空白(即0)位置
//数组中某个为0的位置赋值为2或4---》在为0的位置随机产生2或4
void gettwo(int buf[4][4])
{
lb:
row=rand()%4; //把随机数限制在4以内
col=rand()%4; //把随机数限制在4以内
int i=rand()%2;
int arr[2]={2,4};
if(buf[row][col]==0) //这个随机位置没有数字,可以产生一个2或4
buf[row][col]=arr[i];
else //这个位置有数字,不能在这里产生2或4
goto lb;
}
以向上操作为例,每次向上操作,矩阵中每一列的数字都会先往上挪动,再进行合并
挪动:
定义一个临时数组变量tempui[4][4],用来存放挪动后的结果
for(j=0; j<4; j++)
{
for(i=0,k=0; i<4; i++)
{
if(gameui
|