啊哈磊_编程从这里起步

标题: 2048 up & down [打印本页]

作者: 啊哈磊    时间: 2015-4-12 15:07
标题: 2048 up & down
[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
{:soso_e113:}感觉很强大的样子




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2