C语言用顺序表实现的2048小游戏源代码

使用顺序表来实现的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游戏代码,此代码只能在编译器上面运行。如有需要,可以转载使用!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值