查看: 1040|回复: 1

[随记] 2048 up & down

[复制链接]
发表于 2015-4-12 15:07:30 | 显示全部楼层 |阅读模式
[C] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int a[6][6]={0};
int dayin(){
	int i,j;
    system("cls");
	for(i=0;i<=3;i++)
    {
         for(j=0;j<=3;j++)
             printf("%4d",a[i][j]);
         printf("\n");
    }
}

int main(){
	int i,j,x1=0,y1=0,x2=0,y2=0,k;
    char ch;
    srand((unsigned)time(NULL));
    while(x1==x2 && y1==y2){
		x1=rand()%4; y1=rand()%4;
		x2=rand()%4; y2=rand()%4;
    }
    //a[0][1]=4;a[1][1]=2;
    a[x1][y1]=2;a[x2][y2]=2;
    dayin();
   
    while(1>0){
		ch=getch();
        if(ch=='w') {
            for(j=0;j<=3;j++) {//每一列的操作是相同的
                for(i=1;i<=3;i++) {
                    if(a[i][j]!=0) {//当前这个格子中的数不为0
                        k=i;
                        while(a[k-1][j]==0 && k-1>=0)
                            k--;              
                        if(k!=i){
                            a[k][j]=a[i][j];
                            a[i][j]=0;
                        }
                        if(a[k-1][j]==a[k][j] && k-1>=0) { //两个相同的数相邻
							a[k-1][j]*=2;
                            a[k][j]=0;
                        }
                    }
                }
            }
        }
        if(ch=='s') {
            for(j=0;j<=3;j++) {//每一列的操作是相同的
                for(i=2;i>=0;i--) {
                    if(a[i][j]!=0) {//当前这个格子中的数不为0
                        k=i;
                        while(a[k+1][j]==0 && k+1<=3)
                            k++;              
                        if(k!=i){
                            a[k][j]=a[i][j];
                            a[i][j]=0;
                        }
                        if(a[k+1][j]==a[k][j] && k+1<=3) { //两个相同的数相邻
							a[k+1][j]*=2;
                            a[k][j]=0;
                        }
                    }
                }
            }
        }
        
        
        x1=rand()%4; y1=rand()%4;
        while(a[x1][y1]!=0){
            x1=rand()%4; y1=rand()%4;
        }
        a[x1][y1]=2;
        dayin();
    }
    
    
	system("pause");
	return 0;
}

回复

使用道具 举报

发表于 2015-4-13 01:24:47 | 显示全部楼层
感觉很强大的样子
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表