使用顺序表来实现的2048小游戏
一、构造结构体
1、构造一个大小为十六顺序表结构体
#define DATA 16
typedef struct Node
{
int data[DATA];
int length;
}Node,*NodePtr;
二、顺序表的初始化
1、以下代码是顺序表初始化开辟64个字节大小的空间
void Init2048(NodePtr sizestrlen)
{
NodePtr s=(NodePtr)malloc(64);
s->length=DATA;
}
三、2048的初始化
1、此处是把2048游戏的16个格子全部初始化为2的过程
void Sidelength(NodePtr sizestrlen)
{
srand((unsigned int)time(NULL));
for(int j=1;j<=SIDE*SIDE;j++)
{
int p=2;
sizestrlen->data[j]=p;
printf(" %d \t",sizestrlen->data[j]);
if(j%4==0)
{
printf("\n\n");
}
}
}
四、构造按键 ↑ ↓ ← → 和 W S A D 的算法
void Wword(NodePtr sizestrlen)
{
for(int i=0;i<SIDE;i++)
{
//srand((unsigned int)time(NULL));
int r=rand()%2;
if(r==1)
{
r=2;
}
else
{
r=0;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i]==0&&sizestrlen->data[9+i]==0&&sizestrlen->data[13+i]==0)
{
sizestrlen->data[1+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i]!=0&&sizestrlen->data[9+i]!=0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[5+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[5+i];
if(sizestrlen->data[9+i]==sizestrlen->data[13+i])
{
sizestrlen->data[5+i]=sizestrlen->data[9+i]+sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
}
continue ;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[9+i])
{
if(sizestrlen->data[13+i]==0)
{
sizestrlen->data[5+i]=sizestrlen->data[5+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[5+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
}
continue ;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[13+i])
{
sizestrlen->data[9+i]=sizestrlen->data[9+i]+sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
continue ;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i]==0&&sizestrlen->data[9+i]==0&&sizestrlen->data[13+i]==0)
{
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&& sizestrlen->data[5+i] !=0&&sizestrlen->data[9+i] == 0&&sizestrlen->data[13+i]==0)
{
sizestrlen->data[1+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]==0)
{
sizestrlen->data[1+i]=sizestrlen->data[9+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] == 0&&sizestrlen->data[13+i]!=0)
{
sizestrlen->data[1+i]=sizestrlen->data[13+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i]!=0&&sizestrlen->data[9+i]==0 && sizestrlen->data[13+i] == 0)
{
if(sizestrlen->data[1+i] == sizestrlen->data[5+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]==0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[9+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[9+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] == 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[13+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[15+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] !=0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]==0)
{
if(sizestrlen->data[5+i] ==sizestrlen->data[9+i])
{
sizestrlen->data[1+i]=sizestrlen->data[5+i]+sizestrlen->data[9+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] !=0&&sizestrlen->data[9+i] == 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[5+i]==sizestrlen->data[13+i])
{
sizestrlen->data[1+i]=sizestrlen->data[5+i]+sizestrlen->data[15+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[9+i]==sizestrlen->data[13+i])
{
sizestrlen->data[1+i]=sizestrlen->data[9+i]+sizestrlen->data[13+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[9+i];
sizestrlen->data[5+i]=sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0 &&sizestrlen->data[5+i]!=0 && sizestrlen->data[9+i] !=0 &&sizestrlen->data[13+i] == 0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[5+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[9+i])
{
sizestrlen->data[5+i]=sizestrlen->data[5+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[13+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i] !=0&&sizestrlen->data[9+i] == 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[5+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[13+i])
{
sizestrlen->data[5+i]=sizestrlen->data[5+i]+sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[9+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[9+i];
sizestrlen->data[5+i]=sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[13+i])
{
sizestrlen->data[5+i]=sizestrlen->data[9+i]+sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] !=0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[5+i]==sizestrlen->data[9+i])
{
sizestrlen->data[1+i]=sizestrlen->data[5+i]+sizestrlen->data[9+i];
sizestrlen->data[5+i]=sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[13+i])
{
sizestrlen->data[1+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[9+i]+sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
}
}
}
}
void Aword(NodePtr sizestrlen)
{
for(int i=0;i<SIDE*SIDE;i=i+4)
{
//srand((unsigned int)time(NULL));
int r=rand()%2;
if(r==1)
{
r=2;
}
else
{
r=0;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i]==0&&sizestrlen->data[3+i]==0&&sizestrlen->data[4+i]==0)
{
sizestrlen->data[1+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i]!=0&&sizestrlen->data[3+i]!=0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[2+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[2+i];
if(sizestrlen->data[3+i]==sizestrlen->data[4+i])
{
sizestrlen->data[2+i]=sizestrlen->data[3+i]+sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
}
continue ;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[3+i])
{
if(sizestrlen->data[4+i]==0)
{
sizestrlen->data[2+i]=sizestrlen->data[2+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[2+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
}
continue ;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[4+i])
{
sizestrlen->data[3+i]=sizestrlen->data[3+i]+sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
continue ;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i]==0&&sizestrlen->data[3+i]==0&&sizestrlen->data[4+i]==0)
{
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&& sizestrlen->data[2+i] !=0&&sizestrlen->data[3+i] == 0&&sizestrlen->data[4+i]==0)
{
sizestrlen->data[1+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]==0)
{
sizestrlen->data[1+i]=sizestrlen->data[3+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] == 0&&sizestrlen->data[4+i]!=0)
{
sizestrlen->data[1+i]=sizestrlen->data[4+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i]!=0&&sizestrlen->data[3+i]==0 && sizestrlen->data[4+i] == 0)
{
if(sizestrlen->data[1+i] == sizestrlen->data[2+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]==0)
{
if(sizestrlen->data[1+i] == sizestrlen->data[3+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[3+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] == 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[1+i] == sizestrlen->data[4+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[4+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] !=0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]==0)
{
if(sizestrlen->data[2+i] ==sizestrlen->data[3+i])
{
sizestrlen->data[1+i]=sizestrlen->data[2+i]+sizestrlen->data[3+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] !=0&&sizestrlen->data[3+i] == 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[2+i] == sizestrlen->data[4+i])
{
sizestrlen->data[1+i]=sizestrlen->data[2+i]+sizestrlen->data[4+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[3+i]==sizestrlen->data[4+i])
{
sizestrlen->data[1+i]=sizestrlen->data[3+i]+sizestrlen->data[4+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[3+i];
sizestrlen->data[2+i]=sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0 &&sizestrlen->data[2+i]!=0 && sizestrlen->data[3+i] !=0 &&sizestrlen->data[4+i] == 0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[2+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[3+i])
{
sizestrlen->data[2+i]=sizestrlen->data[2+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[4+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i] !=0&&sizestrlen->data[3+i] == 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[2+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[4+i])
{
sizestrlen->data[2+i]=sizestrlen->data[2+i]+sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[3+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[3+i];
sizestrlen->data[2+i]=sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[4+i])
{
sizestrlen->data[2+i]=sizestrlen->data[3+i]+sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] !=0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[2+i]==sizestrlen->data[3+i])
{
sizestrlen->data[1+i]=sizestrlen->data[2+i]+sizestrlen->data[3+i];
sizestrlen->data[2+i]=sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[4+i])
{
sizestrlen->data[1+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[3+i]+sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
}
continue ;
}
}
}
void Sword(NodePtr sizestrlen)
{
for(int i=0;i<SIDE;i++)
{
//srand((unsigned int)time(NULL));
int r=rand()%2;
if(r==1)
{
r=2;
}
else
{
r=0;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i]==0&&sizestrlen->data[5+i]==0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[13+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i]!=0&&sizestrlen->data[5+i]!=0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[13+i]==sizestrlen->data[9+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[9+i];
if(sizestrlen->data[5+i]==sizestrlen->data[1+i])
{
sizestrlen->data[9+i]=sizestrlen->data[5+i]+sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[5+i])
{
if(sizestrlen->data[1+i]==0)
{
sizestrlen->data[9+i]=sizestrlen->data[9+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[9+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[1+i])
{
sizestrlen->data[5+i]=sizestrlen->data[5+i]+sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
continue ;
}
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i]==0&&sizestrlen->data[5+i]==0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[13+i]==0&& sizestrlen->data[9+i] !=0&&sizestrlen->data[5+i] == 0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[13+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[13+i]=sizestrlen->data[5+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] == 0&&sizestrlen->data[1+i]!=0)
{
sizestrlen->data[13+i]=sizestrlen->data[1+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i]!=0&&sizestrlen->data[5+i]==0 && sizestrlen->data[1+i] == 0)
{
if(sizestrlen->data[13+i] == sizestrlen->data[9+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]==0)
{
if(sizestrlen->data[13+i] == sizestrlen->data[5+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[5+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[13+i] == sizestrlen->data[1+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[1+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] !=0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]==0)
{
if(sizestrlen->data[9+i] ==sizestrlen->data[5+i])
{
sizestrlen->data[13+i]=sizestrlen->data[9+i]+sizestrlen->data[5+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[13+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] !=0&&sizestrlen->data[5+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[9+i] == sizestrlen->data[1+i])
{
sizestrlen->data[13+i]=sizestrlen->data[9+i]+sizestrlen->data[1+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[13+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[5+i]==sizestrlen->data[1+i])
{
sizestrlen->data[13+i]=sizestrlen->data[5+i]+sizestrlen->data[1+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[13+i]=sizestrlen->data[5+i];
sizestrlen->data[9+i]=sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]!=0 &&sizestrlen->data[9+i]!=0 && sizestrlen->data[5+i] !=0 &&sizestrlen->data[1+i] == 0)
{
if(sizestrlen->data[13+i]==sizestrlen->data[9+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[5+i])
{
sizestrlen->data[9+i]=sizestrlen->data[9+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i] !=0&&sizestrlen->data[5+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[13+i]==sizestrlen->data[9+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[1+i])
{
sizestrlen->data[9+i]=sizestrlen->data[9+i]+sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[13+i]==sizestrlen->data[5+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[5+i];
sizestrlen->data[9+i]=sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[1+i])
{
sizestrlen->data[9+i]=sizestrlen->data[5+i]+sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] !=0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[9+i]==sizestrlen->data[5+i])
{
sizestrlen->data[13+i]=sizestrlen->data[9+i]+sizestrlen->data[5+i];
sizestrlen->data[9+i]=sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[1+i])
{
sizestrlen->data[13+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[5+i]+sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[13+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
}
}
void Dword(NodePtr sizestrlen)
{
for(int i=0;i<SIDE*SIDE;i=i+4)
{
//srand((unsigned int)time(NULL));
int r=rand()%2;
if(r==1)
{
r=2;
}
else
{
r=0;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i]==0&&sizestrlen->data[2+i]==0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[4+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i]!=0&&sizestrlen->data[2+i]!=0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[4+i]==sizestrlen->data[3+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[3+i];
if(sizestrlen->data[2+i]==sizestrlen->data[1+i])
{
sizestrlen->data[3+i]=sizestrlen->data[2+i]+sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[2+i])
{
if(sizestrlen->data[1+i]==0)
{
sizestrlen->data[3+i]=sizestrlen->data[3+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[3+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[1+i])
{
sizestrlen->data[2+i]=sizestrlen->data[2+i]+sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
continue ;
}
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i]==0&&sizestrlen->data[2+i]==0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[4+i]==0&& sizestrlen->data[3+i] !=0&&sizestrlen->data[2+i] == 0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[4+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[4+i]=sizestrlen->data[2+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] == 0&&sizestrlen->data[1+i]!=0)
{
sizestrlen->data[4+i]=sizestrlen->data[1+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i]!=0&&sizestrlen->data[2+i]==0 && sizestrlen->data[1+i] == 0)
{
if(sizestrlen->data[4+i] == sizestrlen->data[3+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]==0)
{
if(sizestrlen->data[4+i] == sizestrlen->data[2+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[2+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[4+i] == sizestrlen->data[1+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[1+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] !=0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]==0)
{
if(sizestrlen->data[3+i] ==sizestrlen->data[2+i])
{
sizestrlen->data[4+i]=sizestrlen->data[3+i]+sizestrlen->data[2+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[4+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] !=0&&sizestrlen->data[2+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[3+i] == sizestrlen->data[1+i])
{
sizestrlen->data[4+i]=sizestrlen->data[3+i]+sizestrlen->data[1+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[4+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[2+i]==sizestrlen->data[1+i])
{
sizestrlen->data[4+i]=sizestrlen->data[2+i]+sizestrlen->data[1+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[4+i]=sizestrlen->data[2+i];
sizestrlen->data[3+i]=sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]!=0 &&sizestrlen->data[3+i]!=0 && sizestrlen->data[2+i] !=0 &&sizestrlen->data[1+i] == 0)
{
if(sizestrlen->data[4+i]==sizestrlen->data[3+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[2+i])
{
sizestrlen->data[3+i]=sizestrlen->data[3+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i] !=0&&sizestrlen->data[2+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[4+i]==sizestrlen->data[3+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[1+i])
{
sizestrlen->data[3+i]=sizestrlen->data[3+i]+sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[4+i]==sizestrlen->data[2+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[2+i];
sizestrlen->data[3+i]=sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[1+i])
{
sizestrlen->data[3+i]=sizestrlen->data[2+i]+sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] !=0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[3+i]==sizestrlen->data[2+i])
{
sizestrlen->data[4+i]=sizestrlen->data[3+i]+sizestrlen->data[2+i];
sizestrlen->data[3+i]=sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[1+i])
{
sizestrlen->data[4+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[2+i]+sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[4+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
}
}
五、退出游戏
1、以下代码为游戏退出代码
int Exit2048(NodePtr sizestrlen)
{
if(sizestrlen->data[1] !=sizestrlen->data[5]&&sizestrlen->data[5] !=sizestrlen->data[9]
&&sizestrlen->data[9] !=sizestrlen->data[13]&&sizestrlen->data[2] !=sizestrlen->data[6]
&&sizestrlen->data[6] !=sizestrlen->data[10]&&sizestrlen->data[10] !=sizestrlen->data[14]
&&sizestrlen->data[3] !=sizestrlen->data[7]&&sizestrlen->data[7] !=sizestrlen->data[11]
&&sizestrlen->data[11] !=sizestrlen->data[15]&&sizestrlen->data[4] !=sizestrlen->data[8]
&&sizestrlen->data[8] !=sizestrlen->data[12]&&sizestrlen->data[12] !=sizestrlen->data[16]
&&sizestrlen->data[1] !=sizestrlen->data[2]&&sizestrlen->data[2] !=sizestrlen->data[3]
&&sizestrlen->data[3] !=sizestrlen->data[4]&&sizestrlen->data[5] !=sizestrlen->data[6]
&&sizestrlen->data[6] !=sizestrlen->data[7]&&sizestrlen->data[7] !=sizestrlen->data[8]
&&sizestrlen->data[9] !=sizestrlen->data[10]&&sizestrlen->data[10] !=sizestrlen->data[11]
&&sizestrlen->data[11] !=sizestrlen->data[12]&&sizestrlen->data[13] !=sizestrlen->data[14]
&&sizestrlen->data[14] !=sizestrlen->data[15]&&sizestrlen->data[15] !=sizestrlen->data[16]
&&sizestrlen->data[1]!=0&&sizestrlen->data[2]!=0&&sizestrlen->data[3]!=0&&sizestrlen->data[4]!=0
&&sizestrlen->data[5]!=0&&sizestrlen->data[6]!=0&&sizestrlen->data[7]!=0&&sizestrlen->data[8]!=0
&&sizestrlen->data[9]!=0&&sizestrlen->data[10]!=0&&sizestrlen->data[11]!=0&&sizestrlen->data[12]!=0
&&sizestrlen->data[13]!=0&&sizestrlen->data[14]!=0&&sizestrlen->data[15]!=0&&sizestrlen->data[16]!=0)
{
return 0;
}
for(int j=1;j<=SIDE*SIDE;j++)
{
if(sizestrlen->data[j]==2048)
{
return 1;
}
}
}
六、以下为游戏完整代码
==只需按照操作建三个文件夹把每个文件夹下的代码拷贝过去即可运行
一、所有代码分为三个文件
文件名为下
1、 2048game.h
2、 2048.cpp
3、 2048mian.cpp
二、
1、 2048game.h
#pragma once
#define SIDE 4
#define DATA 16
typedef struct Node
{
int data[DATA];
int length;
}Node,*NodePtr;
void Addnumber();
void Init2048(NodePtr sizestrlen);
void Sidelength(NodePtr sizestrlen);
void Wword(NodePtr sizestrlen);
void Sword(NodePtr sizestrlen);
void Aword(NodePtr sizestrlen);
void Dword(NodePtr sizestrlen);
int Exit2048(NodePtr sizestrlen);
void Show(NodePtr sizestrlen);
三、
1、2048.cpp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <time.h>
#include "2048game.h"
//int *sizestrlen[SIDE*SIDE];
void Init2048(NodePtr sizestrlen)
{
NodePtr s=(NodePtr)malloc(64);
s->length=DATA;
}
void Sidelength(NodePtr sizestrlen)
{
srand((unsigned int)time(NULL));
for(int j=1;j<=SIDE*SIDE;j++)
{
int p=2;
sizestrlen->data[j]=p;
printf(" %d \t",sizestrlen->data[j]);
if(j%4==0)
{
printf("\n\n");
}
}
}
void Wword(NodePtr sizestrlen)
{
for(int i=0;i<SIDE;i++)
{
//srand((unsigned int)time(NULL));
int r=rand()%2;
if(r==1)
{
r=2;
}
else
{
r=0;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i]==0&&sizestrlen->data[9+i]==0&&sizestrlen->data[13+i]==0)
{
sizestrlen->data[1+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i]!=0&&sizestrlen->data[9+i]!=0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[5+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[5+i];
if(sizestrlen->data[9+i]==sizestrlen->data[13+i])
{
sizestrlen->data[5+i]=sizestrlen->data[9+i]+sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
}
continue ;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[9+i])
{
if(sizestrlen->data[13+i]==0)
{
sizestrlen->data[5+i]=sizestrlen->data[5+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[5+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
}
continue ;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[13+i])
{
sizestrlen->data[9+i]=sizestrlen->data[9+i]+sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
continue ;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i]==0&&sizestrlen->data[9+i]==0&&sizestrlen->data[13+i]==0)
{
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&& sizestrlen->data[5+i] !=0&&sizestrlen->data[9+i] == 0&&sizestrlen->data[13+i]==0)
{
sizestrlen->data[1+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]==0)
{
sizestrlen->data[1+i]=sizestrlen->data[9+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] == 0&&sizestrlen->data[13+i]!=0)
{
sizestrlen->data[1+i]=sizestrlen->data[13+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i]!=0&&sizestrlen->data[9+i]==0 && sizestrlen->data[13+i] == 0)
{
if(sizestrlen->data[1+i] == sizestrlen->data[5+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]==0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[9+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[9+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] == 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[13+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[15+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] !=0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]==0)
{
if(sizestrlen->data[5+i] ==sizestrlen->data[9+i])
{
sizestrlen->data[1+i]=sizestrlen->data[5+i]+sizestrlen->data[9+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] !=0&&sizestrlen->data[9+i] == 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[5+i]==sizestrlen->data[13+i])
{
sizestrlen->data[1+i]=sizestrlen->data[5+i]+sizestrlen->data[15+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[9+i]==sizestrlen->data[13+i])
{
sizestrlen->data[1+i]=sizestrlen->data[9+i]+sizestrlen->data[13+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[9+i];
sizestrlen->data[5+i]=sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0 &&sizestrlen->data[5+i]!=0 && sizestrlen->data[9+i] !=0 &&sizestrlen->data[13+i] == 0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[5+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[9+i])
{
sizestrlen->data[5+i]=sizestrlen->data[5+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[13+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i] !=0&&sizestrlen->data[9+i] == 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[5+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[13+i])
{
sizestrlen->data[5+i]=sizestrlen->data[5+i]+sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[5+i] ==0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[9+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[9+i];
sizestrlen->data[5+i]=sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[13+i])
{
sizestrlen->data[5+i]=sizestrlen->data[9+i]+sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[5+i] !=0&&sizestrlen->data[9+i] != 0&&sizestrlen->data[13+i]!=0)
{
if(sizestrlen->data[5+i]==sizestrlen->data[9+i])
{
sizestrlen->data[1+i]=sizestrlen->data[5+i]+sizestrlen->data[9+i];
sizestrlen->data[5+i]=sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[13+i])
{
sizestrlen->data[1+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[9+i]+sizestrlen->data[13+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[13+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[13+i];
sizestrlen->data[13+i]=r;
}
}
}
}
void Aword(NodePtr sizestrlen)
{
for(int i=0;i<SIDE*SIDE;i=i+4)
{
//srand((unsigned int)time(NULL));
int r=rand()%2;
if(r==1)
{
r=2;
}
else
{
r=0;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i]==0&&sizestrlen->data[3+i]==0&&sizestrlen->data[4+i]==0)
{
sizestrlen->data[1+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i]!=0&&sizestrlen->data[3+i]!=0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[2+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[2+i];
if(sizestrlen->data[3+i]==sizestrlen->data[4+i])
{
sizestrlen->data[2+i]=sizestrlen->data[3+i]+sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
}
continue ;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[3+i])
{
if(sizestrlen->data[4+i]==0)
{
sizestrlen->data[2+i]=sizestrlen->data[2+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[2+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
}
continue ;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[4+i])
{
sizestrlen->data[3+i]=sizestrlen->data[3+i]+sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
continue ;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i]==0&&sizestrlen->data[3+i]==0&&sizestrlen->data[4+i]==0)
{
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&& sizestrlen->data[2+i] !=0&&sizestrlen->data[3+i] == 0&&sizestrlen->data[4+i]==0)
{
sizestrlen->data[1+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]==0)
{
sizestrlen->data[1+i]=sizestrlen->data[3+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] == 0&&sizestrlen->data[4+i]!=0)
{
sizestrlen->data[1+i]=sizestrlen->data[4+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i]!=0&&sizestrlen->data[3+i]==0 && sizestrlen->data[4+i] == 0)
{
if(sizestrlen->data[1+i] == sizestrlen->data[2+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]==0)
{
if(sizestrlen->data[1+i] == sizestrlen->data[3+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[3+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] == 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[1+i] == sizestrlen->data[4+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[4+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] !=0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]==0)
{
if(sizestrlen->data[2+i] ==sizestrlen->data[3+i])
{
sizestrlen->data[1+i]=sizestrlen->data[2+i]+sizestrlen->data[3+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] !=0&&sizestrlen->data[3+i] == 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[2+i] == sizestrlen->data[4+i])
{
sizestrlen->data[1+i]=sizestrlen->data[2+i]+sizestrlen->data[4+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[3+i]==sizestrlen->data[4+i])
{
sizestrlen->data[1+i]=sizestrlen->data[3+i]+sizestrlen->data[4+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[3+i];
sizestrlen->data[2+i]=sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
continue ;
}
if(sizestrlen->data[1+i]!=0 &&sizestrlen->data[2+i]!=0 && sizestrlen->data[3+i] !=0 &&sizestrlen->data[4+i] == 0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[2+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[3+i])
{
sizestrlen->data[2+i]=sizestrlen->data[2+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[4+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i] !=0&&sizestrlen->data[3+i] == 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[2+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[4+i])
{
sizestrlen->data[2+i]=sizestrlen->data[2+i]+sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]!=0&&sizestrlen->data[2+i] ==0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[1+i]==sizestrlen->data[3+i])
{
sizestrlen->data[1+i]=sizestrlen->data[1+i]+sizestrlen->data[3+i];
sizestrlen->data[2+i]=sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[4+i])
{
sizestrlen->data[2+i]=sizestrlen->data[3+i]+sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
}
continue ;
}
if(sizestrlen->data[1+i]==0&&sizestrlen->data[2+i] !=0&&sizestrlen->data[3+i] != 0&&sizestrlen->data[4+i]!=0)
{
if(sizestrlen->data[2+i]==sizestrlen->data[3+i])
{
sizestrlen->data[1+i]=sizestrlen->data[2+i]+sizestrlen->data[3+i];
sizestrlen->data[2+i]=sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[4+i])
{
sizestrlen->data[1+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[3+i]+sizestrlen->data[4+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[4+i]=0;
}
else
{
sizestrlen->data[1+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[4+i];
sizestrlen->data[4+i]=r;
}
continue ;
}
}
}
void Sword(NodePtr sizestrlen)
{
for(int i=0;i<SIDE;i++)
{
//srand((unsigned int)time(NULL));
int r=rand()%2;
if(r==1)
{
r=2;
}
else
{
r=0;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i]==0&&sizestrlen->data[5+i]==0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[13+i]=r;
sizestrlen->data[9+i]=sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i]!=0&&sizestrlen->data[5+i]!=0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[13+i]==sizestrlen->data[9+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[9+i];
if(sizestrlen->data[5+i]==sizestrlen->data[1+i])
{
sizestrlen->data[9+i]=sizestrlen->data[5+i]+sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[5+i])
{
if(sizestrlen->data[1+i]==0)
{
sizestrlen->data[9+i]=sizestrlen->data[9+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[9+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[1+i])
{
sizestrlen->data[5+i]=sizestrlen->data[5+i]+sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
continue ;
}
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i]==0&&sizestrlen->data[5+i]==0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[13+i]==0&& sizestrlen->data[9+i] !=0&&sizestrlen->data[5+i] == 0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[13+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[13+i]=sizestrlen->data[5+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] == 0&&sizestrlen->data[1+i]!=0)
{
sizestrlen->data[13+i]=sizestrlen->data[1+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i]!=0&&sizestrlen->data[5+i]==0 && sizestrlen->data[1+i] == 0)
{
if(sizestrlen->data[13+i] == sizestrlen->data[9+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]==0)
{
if(sizestrlen->data[13+i] == sizestrlen->data[5+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[5+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[13+i] == sizestrlen->data[1+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[1+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] !=0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]==0)
{
if(sizestrlen->data[9+i] ==sizestrlen->data[5+i])
{
sizestrlen->data[13+i]=sizestrlen->data[9+i]+sizestrlen->data[5+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[13+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] !=0&&sizestrlen->data[5+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[9+i] == sizestrlen->data[1+i])
{
sizestrlen->data[13+i]=sizestrlen->data[9+i]+sizestrlen->data[1+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[13+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[5+i]==sizestrlen->data[1+i])
{
sizestrlen->data[13+i]=sizestrlen->data[5+i]+sizestrlen->data[1+i];
sizestrlen->data[9+i]=r;
sizestrlen->data[5+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[13+i]=sizestrlen->data[5+i];
sizestrlen->data[9+i]=sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[13+i]!=0 &&sizestrlen->data[9+i]!=0 && sizestrlen->data[5+i] !=0 &&sizestrlen->data[1+i] == 0)
{
if(sizestrlen->data[13+i]==sizestrlen->data[9+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[5+i])
{
sizestrlen->data[9+i]=sizestrlen->data[9+i]+sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i] !=0&&sizestrlen->data[5+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[13+i]==sizestrlen->data[9+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[9+i]==sizestrlen->data[1+i])
{
sizestrlen->data[9+i]=sizestrlen->data[9+i]+sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[5+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[13+i]!=0&&sizestrlen->data[9+i] ==0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[13+i]==sizestrlen->data[5+i])
{
sizestrlen->data[13+i]=sizestrlen->data[13+i]+sizestrlen->data[5+i];
sizestrlen->data[9+i]=sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[1+i])
{
sizestrlen->data[9+i]=sizestrlen->data[5+i]+sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[13+i]==0&&sizestrlen->data[9+i] !=0&&sizestrlen->data[5+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[9+i]==sizestrlen->data[5+i])
{
sizestrlen->data[13+i]=sizestrlen->data[9+i]+sizestrlen->data[5+i];
sizestrlen->data[9+i]=sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[5+i]==sizestrlen->data[1+i])
{
sizestrlen->data[13+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[5+i]+sizestrlen->data[1+i];
sizestrlen->data[5+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[13+i]=sizestrlen->data[9+i];
sizestrlen->data[9+i]=sizestrlen->data[5+i];
sizestrlen->data[5+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
}
}
void Dword(NodePtr sizestrlen)
{
for(int i=0;i<SIDE*SIDE;i=i+4)
{
//srand((unsigned int)time(NULL));
int r=rand()%2;
if(r==1)
{
r=2;
}
else
{
r=0;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i]==0&&sizestrlen->data[2+i]==0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[4+i]=r;
sizestrlen->data[3+i]=sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i]!=0&&sizestrlen->data[2+i]!=0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[4+i]==sizestrlen->data[3+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[3+i];
if(sizestrlen->data[2+i]==sizestrlen->data[1+i])
{
sizestrlen->data[3+i]=sizestrlen->data[2+i]+sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[2+i])
{
if(sizestrlen->data[1+i]==0)
{
sizestrlen->data[3+i]=sizestrlen->data[3+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[3+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[1+i])
{
sizestrlen->data[2+i]=sizestrlen->data[2+i]+sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
continue ;
}
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i]==0&&sizestrlen->data[2+i]==0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[4+i]==0&& sizestrlen->data[3+i] !=0&&sizestrlen->data[2+i] == 0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[4+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]==0)
{
sizestrlen->data[4+i]=sizestrlen->data[2+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] == 0&&sizestrlen->data[1+i]!=0)
{
sizestrlen->data[4+i]=sizestrlen->data[1+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i]!=0&&sizestrlen->data[2+i]==0 && sizestrlen->data[1+i] == 0)
{
if(sizestrlen->data[4+i] == sizestrlen->data[3+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]==0)
{
if(sizestrlen->data[4+i] == sizestrlen->data[2+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[2+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[4+i] == sizestrlen->data[1+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[1+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] !=0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]==0)
{
if(sizestrlen->data[3+i] ==sizestrlen->data[2+i])
{
sizestrlen->data[4+i]=sizestrlen->data[3+i]+sizestrlen->data[2+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[4+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] !=0&&sizestrlen->data[2+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[3+i] == sizestrlen->data[1+i])
{
sizestrlen->data[4+i]=sizestrlen->data[3+i]+sizestrlen->data[1+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[4+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[2+i]==sizestrlen->data[1+i])
{
sizestrlen->data[4+i]=sizestrlen->data[2+i]+sizestrlen->data[1+i];
sizestrlen->data[3+i]=r;
sizestrlen->data[2+i]=sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[4+i]=sizestrlen->data[2+i];
sizestrlen->data[3+i]=sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
continue ;
}
if(sizestrlen->data[4+i]!=0 &&sizestrlen->data[3+i]!=0 && sizestrlen->data[2+i] !=0 &&sizestrlen->data[1+i] == 0)
{
if(sizestrlen->data[4+i]==sizestrlen->data[3+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[2+i])
{
sizestrlen->data[3+i]=sizestrlen->data[3+i]+sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i] !=0&&sizestrlen->data[2+i] == 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[4+i]==sizestrlen->data[3+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[3+i]==sizestrlen->data[1+i])
{
sizestrlen->data[3+i]=sizestrlen->data[3+i]+sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[2+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[4+i]!=0&&sizestrlen->data[3+i] ==0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[4+i]==sizestrlen->data[2+i])
{
sizestrlen->data[4+i]=sizestrlen->data[4+i]+sizestrlen->data[2+i];
sizestrlen->data[3+i]=sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[1+i])
{
sizestrlen->data[3+i]=sizestrlen->data[2+i]+sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
if(sizestrlen->data[4+i]==0&&sizestrlen->data[3+i] !=0&&sizestrlen->data[2+i] != 0&&sizestrlen->data[1+i]!=0)
{
if(sizestrlen->data[3+i]==sizestrlen->data[2+i])
{
sizestrlen->data[4+i]=sizestrlen->data[3+i]+sizestrlen->data[2+i];
sizestrlen->data[3+i]=sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else if(sizestrlen->data[2+i]==sizestrlen->data[1+i])
{
sizestrlen->data[4+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[2+i]+sizestrlen->data[1+i];
sizestrlen->data[2+i]=r;
sizestrlen->data[1+i]=0;
}
else
{
sizestrlen->data[4+i]=sizestrlen->data[3+i];
sizestrlen->data[3+i]=sizestrlen->data[2+i];
sizestrlen->data[2+i]=sizestrlen->data[1+i];
sizestrlen->data[1+i]=r;
}
continue ;
}
}
}
int Exit2048(NodePtr sizestrlen)
{
if(sizestrlen->data[1] !=sizestrlen->data[5]&&sizestrlen->data[5] !=sizestrlen->data[9]
&&sizestrlen->data[9] !=sizestrlen->data[13]&&sizestrlen->data[2] !=sizestrlen->data[6]
&&sizestrlen->data[6] !=sizestrlen->data[10]&&sizestrlen->data[10] !=sizestrlen->data[14]
&&sizestrlen->data[3] !=sizestrlen->data[7]&&sizestrlen->data[7] !=sizestrlen->data[11]
&&sizestrlen->data[11] !=sizestrlen->data[15]&&sizestrlen->data[4] !=sizestrlen->data[8]
&&sizestrlen->data[8] !=sizestrlen->data[12]&&sizestrlen->data[12] !=sizestrlen->data[16]
&&sizestrlen->data[1] !=sizestrlen->data[2]&&sizestrlen->data[2] !=sizestrlen->data[3]
&&sizestrlen->data[3] !=sizestrlen->data[4]&&sizestrlen->data[5] !=sizestrlen->data[6]
&&sizestrlen->data[6] !=sizestrlen->data[7]&&sizestrlen->data[7] !=sizestrlen->data[8]
&&sizestrlen->data[9] !=sizestrlen->data[10]&&sizestrlen->data[10] !=sizestrlen->data[11]
&&sizestrlen->data[11] !=sizestrlen->data[12]&&sizestrlen->data[13] !=sizestrlen->data[14]
&&sizestrlen->data[14] !=sizestrlen->data[15]&&sizestrlen->data[15] !=sizestrlen->data[16]
&&sizestrlen->data[1]!=0&&sizestrlen->data[2]!=0&&sizestrlen->data[3]!=0&&sizestrlen->data[4]!=0
&&sizestrlen->data[5]!=0&&sizestrlen->data[6]!=0&&sizestrlen->data[7]!=0&&sizestrlen->data[8]!=0
&&sizestrlen->data[9]!=0&&sizestrlen->data[10]!=0&&sizestrlen->data[11]!=0&&sizestrlen->data[12]!=0
&&sizestrlen->data[13]!=0&&sizestrlen->data[14]!=0&&sizestrlen->data[15]!=0&&sizestrlen->data[16]!=0)
{
return 0;
}
for(int j=1;j<=SIDE*SIDE;j++)
{
if(sizestrlen->data[j]==2048)
{
return 1;
}
}
}
void Show(NodePtr sizestrlen)
{
for(int j=1;j<=SIDE*SIDE;j++)
{
printf(" %d \t",sizestrlen->data[j]);
if(j%4==0)
{
printf("\n\n");
}
}
}
三、
1、2048main.cpp
#include <stdio.h>
#include <windows.h>
#include <string.h>
int main()
{
Node sizestrlen;
Init2048(&sizestrlen);
Sidelength(&sizestrlen);
while(1)
{
char str[1]={0};
scanf_s("%c",str);
system("cls");
if(strncmp(str,"w",1)==0)
{
Wword(&sizestrlen);
//fflush(stdin);
}
if(strncmp(str,"s",1)==0)
{
Sword(&sizestrlen);
//fflush(stdin);
}
if(strncmp(str,"a",1)==0)
{
Aword(&sizestrlen);
//fflush(stdin);
}
if(strncmp(str,"d",1)==0)
{
Dword(&sizestrlen);
//fflush(stdin);
}
Show(&sizestrlen);
if(Exit2048(&sizestrlen)==0)
{
printf("\n\n 失败了!请从新开始2048游戏哦! \n\n");
break;
}
if(Exit2048(&sizestrlen) == 1)
{
printf("\n\n 恭喜你通关成功2048!你真棒! \n\n");
break;
}
}
printf("\n\n 请按q键结束游戏 \n\n");
while(1)
{
char str1[1]={0};
scanf_s("%c",str1);
if(strncmp(str1,"q",1)==0)
{
break;
}
else
continue;
}
}
以上就是我自己使用顺序表写的2048游戏代码,此代码只能在编译器上面运行。如有需要,可以转载使用!