搜索
查看: 1954|回复: 1
打印 上一主题 下一主题

[随记] 2048 up & down

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-12 15:07:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[mw_shl_code=c,true]#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[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[j]!=0) {//当前这个格子中的数不为0
                        k=i;
                        while(a[k-1][j]==0 && k-1>=0)
                            k--;              
                        if(k!=i){
                            a[k][j]=a[j];
                            a[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[j]!=0) {//当前这个格子中的数不为0
                        k=i;
                        while(a[k+1][j]==0 && k+1<=3)
                            k++;              
                        if(k!=i){
                            a[k][j]=a[j];
                            a[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;
}
[/mw_shl_code]
沙发
发表于 2015-4-13 01:24:47 | 只看该作者
{:soso_e113:}感觉很强大的样子
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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