该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
else if(ch==72){
system("cls");
for(j=0;j<4;j++){
if((s[0][j]==s[1][j])&&(s[1][j]==s[2][j])&&s[1][j]==0){
s[0][j]=s[3][j];s[3][j]=0;
}else if((s[0][j]==s[1][j])&&s[1][j]==0){
s[0][j]=s[2][j];s[1][j]=s[3][j];
s[2][j]=0;s[3][j]=0;
}else if(s[0][j]!=0&&s[1][j]==0&&s[2][j]==0){
s[1][j]=s[3][j];
s[3][j]=0;
}else for(i=0;i<3;i++)
if(s[i][j]==0){for(q=i;q<3;q++)s[q][j]=s[q+1][j];s[3][j]=0;}
if(s[3][j]!=0){ //4个数
if((s[0][j]==s[1][j])&&(s[2][j]!=s[3][j])){
sum=sum+s[0][j];
s[0][j]*=2;s[1][j]=s[2][j];s[2][j]=s[3][j];s[3][j]=0;
}
else if((s[0][j]==s[1][j])&&(s[2][j]==s[3][j])){
sum=sum+s[0][j]+s[2][j];
s[0][j]*=2;s[2][j]*=2;
s[1][j]=s[2][j];
s[2][j]=0;s[3][j]=0;
}
else if((s[0][j]!=s[1][j])&&(s[2][j]==s[1][j])){
sum=sum+s[1][j];
s[1][j]*=2;
s[2][j]=s[3][j];
s[3][j]=0;
}else if((s[0][j]!=s[1][j])&&(s[2][j]==s[3][j])){
sum=sum+s[2][j];
s[2][j]*=2;
s[3][j]=0;
}
}
else if(s[2][j]!=0){
if(s[0][j]==s[1][j]){
sum=sum+s[0][j];
s[0][j]*=2;
s[1][j]=s[2][j];
s[2][j]=0;
}
else if((s[0][j]!=s[1][j])&&(s[1][j]==s[2][j])){
sum=sum+s[1][j];
s[1][j]*=2;
s[2][j]=0;
}
}
else if(s[1][j]!=0){
if(s[0][j]==s[1][j]){
sum=sum+s[0][j];
s[0][j]*=2;
s[1][j]=0;
}
}
}
printf("Your score is %d.\n",sum);
for(i=0;i<4;i++){
for(j=0;j<4;j++)printf("%4d",s[i][j]);
printf("\n");
}
}
else if(ch==80){
system("cls");
for(j=0;j<4;j++){
if((s[2][j]==s[1][j])&&(s[3][j]==s[2][j])&&s[1][j]==0){
s[3][j]=s[0][j];s[0][j]=0;
}else if((s[2][j]==s[3][j])&&s[2][j]==0){
s[3][j]=s[1][j];s[2][j]=s[0][j];
s[0][j]=0;s[1][j]=0;
}else if(s[3][j]!=0&&s[1][j]==0&&s[2][j]==0){
s[2][j]=s[0][j];
s[0][j]=0;
}else for(i=3;i>0;i--)
if(s[i][j]==0){for(q=i;q>0;q--)s[q][j]=s[q-1][j];s[0][j]=0;}
if(s[0][j]!=0){ //4个数
if((s[3][j]!=s[2][j])&&(s[2][j]==s[1][j])){
sum=sum+s[1][j];
s[2][j]*=2;
s[1][j]=s[0][j];
s[0][j]=0;
}else if((s[0][j]==s[1][j])&&(s[2][j]!=s[3][j])){
sum=sum+s[1][j];
s[1][j]*=2;s[0][j]=0;
}
else if((s[0][j]==s[1][j])&&(s[2][j]==s[3][j])){
sum=sum+s[0][j]+s[2][j];
s[1][j]*=2;s[3][j]*=2;
s[2][j]=s[1][j];
s[1][j]=0;s[0][j]=0;
}
else if((s[0][j]!=s[1][j])&&(s[2][j]==s[3][j])){
sum=sum+s[2][j];
s[3][j]*=2;s[2][j]=s[1][j];s[1][j]=s[0][j];
s[0][j]=0;
}
}
else if(s[1][j]!=0){
if(s[2][j]==s[3][j]){
sum=sum+s[3][j];
s[3][j]*=2;
s[2][j]=s[1][j];
s[1][j]=0;
}
else if((s[2][j]!=s[3][j])&&(s[1][j]==s[2][j])){
sum=sum+s[1][j];
s[2][j]*=2;
s[1][j]=0;
}
}
else if(s[2][j]!=0){
if(s[2][j]==s[3][j]){
sum=sum+s[3][j];
s[3][j]*=2;
s[2][j]=0;
}
}
}
printf("Your score is %d.\n",sum);
for(i=0;i<4;i++){
for(j=0;j<4;j++)printf("%4d",s[i][j]);
printf("\n");
}
Sleep(100);
}
}
for(i=0;i<4;i++)for(j=0;j<4;j++)if(s[i][j]==com[i][j])num++;
if(num==16)flag2=1;
num=0;
for(i=0;i<4;i++)for(j=0;j<4;j++){
if(s[i][j]!=0)num++;
else{
k[temp].x=i;k[temp].y=j;temp++;
}
if(s[i][j]==MAX){
flag=1;
break;
}
}if(flag==1)break;
if(num==16){
temp2=0;
if(s[0][1]!=s[0][0]&&s[1][0]!=s[0][0])temp2++;
for(j=1;j<3;j++)if(s[0][j]!=s[0][j-1]&&s[0][j]!=s[0][j+1]&&s[0][j]!=s[1][j])temp2++;
if(s[0][3]!=s[0][2]&&s[1][3]!=s[0][3])temp2++;
for(i=1;i<3;i++)if(s[i][0]!=s[i-1][0]&&s[i][0]!=s[i+1][0]&&s[i][0]!=s[i][1])temp2++;
for(i=1;i<3;i++)for(j=1;j<3;j++)if(s[i][j]!=s[i][j-1]&&s[i][j]!=s[i][j+1]&&s[i][j]!=s[i-1][j]&&s[i][j]!=s[i+1][j])temp2++;
for(i=1;i<3;i++)if(s[i][3]!=s[i-1][3]&&s[i][3]!=s[i+1][3]&&s[i][3]!=s[i][2])temp2++;
if(s[3][1]!=s[3][0]&&s[3][0]!=s[2][0])temp2++;
if(s[3][3]!=s[3][2]&&s[3][3]!=s[2][3])temp2++;
for(j=1;j<3;j++)if(s[3][j]!=s[3][j-1]&&s[3][j]!=s[3][j+1]&&s[3][j]!=s[2][j])temp2++;
if(temp2==16)flag=2;
}
if(flag==2)break;
if(num!=16&&flag2==0){
srand( (unsigned)time( NULL ) );
shu=rand()%temp;
srand( (unsigned)time( NULL ) );
p=rand()%8;
if(p!=5)s[k[shu].x][k[shu].y]=2;
else s[k[shu].x][k[shu].y]=4;
system("cls");
printf("Your score is %d.\n",sum);
for(i=0;i<4;i++){
for(j=0;j<4;j++)printf("%4d",s[i][j]);
printf("\n");
}
}
num=0;
for(i=0;i<4;i++)for(j=0;j<4;j++){
if(s[i][j]!=0)num++;
else{
k[temp].x=i;k[temp].y=j;temp++;
}
}flag=0;
if(num==16){
temp2=0;
if(s[0][1]!=s[0][0]&&s[1][0]!=s[0][0])temp2++;
for(j=1;j<3;j++)if(s[0][j]!=s[0][j-1]&&s[0][j]!=s[0][j+1]&&s[0][j]!=s[1][j])temp2++;
if(s[0][3]!=s[0][2]&&s[1][3]!=s[0][3])temp2++;
for(i=1;i<3;i++)if(s[i][0]!=s[i-1][0]&&s[i][0]!=s[i+1][0]&&s[i][0]!=s[i][1])temp2++;
for(i=1;i<3;i++)for(j=1;j<3;j++)if(s[i][j]!=s[i][j-1]&&s[i][j]!=s[i][j+1]&&s[i][j]!=s[i-1][j]&&s[i][j]!=s[i+1][j])temp2++;
for(i=1;i<3;i++)if(s[i][3]!=s[i-1][3]&&s[i][3]!=s[i+1][3]&&s[i][3]!=s[i][2])temp2++;
if(s[3][1]!=s[3][0]&&s[3][0]!=s[2][0])temp2++;
if(s[3][3]!=s[3][2]&&s[3][3]!=s[2][3])temp2++;
for(j=1;j<3;j++)if(s[3][j]!=s[3][j-1]&&s[3][j]!=s[3][j+1]&&s[3][j]!=s[2][j])temp2++;
if(temp2==16)flag=2;
}
if(flag==2)break;
}
if(flag==1){
color(12);printf("\tCongratulations!Your score is %d.Thx for playing!\n",sum);
}else printf("\tGAME OVER!Your score is %d.Thx for playing!\n",sum);
return 0;
}