首页 > 代码库 > C语言实现2048
C语言实现2048
#include<stdio.h>#include<stdlib.h>#include<time.h>int num[5][5]; //定义函数和变量 int score;int gett(int k);void up();void down();void left();void right();void outt(); void nextt();void endd();int main(){ //赋初值 num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0; num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0; num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0; num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0; int i,j; i=1+(int)(4.0*rand()/(RAND_MAX+1.0)); j=1+(int)(4.0*rand()/(RAND_MAX+1.0)); while (num[i][j]!=0){ i=1+(int)(4.0*rand()/(RAND_MAX+1.0)); j=1+(int)(4.0*rand()/(RAND_MAX+1.0)); } num[i][j]=2; i=1+(int)(4.0*rand()/(RAND_MAX+1.0)); j=1+(int)(4.0*rand()/(RAND_MAX+1.0)); while (num[i][j]!=0){ i=1+(int)(4.0*rand()/(RAND_MAX+1.0)); j=1+(int)(4.0*rand()/(RAND_MAX+1.0)); } num[i][j]=2; score=0; outt(); endd(); return 0;} void endd(){ printf(" 2048 mini game \n"); printf(" \n"); printf(" GAME \n"); printf(" \n"); printf(" OVER \n"); printf(" \n"); printf(" YOUR FINAL \n"); printf(" \n"); printf(" SCORE=%d \n",score); printf(" \n"); printf(" \n"); printf(" 2048 mini game \n");}void outt(){ //输出部分 printf(" 2048 mini game \n"); printf(" score=%d \n",score); printf("┌-—┬-—┬-—┬—-┐\n"); printf("│%3d│%3d│%3d│%3d│\n",num[1][1],num[1][2],num[1][3],num[1][4]); printf("├-—┼-—┼—-┼—-┤\n"); printf("│%3d│%3d│%3d│%3d│\n",num[2][1],num[2][2],num[2][3],num[2][4]); printf("├-—┼—-┼—-┼—-┤\n"); printf("│%3d│%3d│%3d│%3d│\n",num[3][1],num[3][2],num[3][3],num[3][4]); printf("├-—┼-—┼-—┼—-┤\n"); printf("│%3d│%3d│%3d│%3d│\n",num[4][1],num[4][2],num[4][3],num[4][4]); printf("└-—┴-—┴—-┴—-┘\n"); printf(" By SHIRO-marisa\n"); int init; scanf("%d",&init); gett(init);}int gett(int k){ //跳转操作 if (k==5){up();} if (k==2){down();} if (k==1){left();} if (k==3){right();}}void up(){ //上 int i,j,k; int zz[5][5]; zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0; zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0; zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0; zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0; zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4]; zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4]; zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4]; zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4]; num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0; num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0; num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0; num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0; for (i=1;i<=4;i++){ k=1; j=1; while (j<5){ if (zz[j][i]!=0){ if (j==4) {num[k][i]=zz[j][i];j++; } else { if (zz[j][i]==zz[j+1][i]){ num[k][i]=zz[j][i]*2; score=zz[j][i]*2+score; k++; j=j+2; } else { num[k][i]=zz[j][i]; j=j+1; k++; } } } else j++; } } zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0; zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0; zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0; zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0; zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4]; zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4]; zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4]; zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4]; num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0; num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0; num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0; num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0; for (i=1;i<=4;i++){ k=1; j=1; while (j<5){ if (zz[j][i]!=0){ if (j==4) {num[k][i]=zz[j][i];j++; } else { if (zz[j][i]==zz[j+1][i]){ num[k][i]=zz[j][i]*2; score=zz[j][i]*2+score; k++; j=j+2; } else { num[k][i]=zz[j][i]; j=j+1; k++; } } } else j++; } } system("CLS"); nextt();}void down(){ //下 int i,j,k; int zz[5][5]; zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0; zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0; zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0; zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0; zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4]; zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4]; zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4]; zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4]; num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0; num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0; num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0; num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0; for (i=1;i<=4;i++){ k=4; j=4; while (j>0){ if (zz[j][i]!=0){if (j==1) {num[k][i]=zz[j][i];j--; } else { if (zz[j][i]==zz[j-1][i]){ num[k][i]=zz[j][i]*2; score=zz[j][i]*2+score; k--; j=j-2; } else { num[k][i]=zz[j][i]; j=j-1; k--; } } } else j--; } } zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0; zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0; zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0; zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0; zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4]; zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4]; zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4]; zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4]; num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0; num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0; num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0; num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0; for (i=1;i<=4;i++){ k=4; j=4; while (j>0){ if (zz[j][i]!=0){if (j==1) {num[k][i]=zz[j][i];j--; } else { if (zz[j][i]==zz[j-1][i]){ num[k][i]=zz[j][i]*2; score=zz[j][i]*2+score; k--; j=j-2; } else { num[k][i]=zz[j][i]; j=j-1; k--; } } } else j--; } } system("CLS"); nextt();} void left(){ //左 int i,j,k; int zz[5][5]; zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0; zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0; zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0; zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0; zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4]; zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4]; zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4]; zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4]; num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0; num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0; num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0; num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0; for (i=1;i<=4;i++){ k=1; j=1; while (j<5){ if (zz[i][j]!=0){if (j==4) {num[i][k]=zz[i][j];j++; } else { if (zz[i][j]==zz[i][j+1]){ num[i][k]=zz[i][j]*2; score=zz[i][j]*2+score; k++; j=j+2; } else { num[i][k]=zz[i][j]; j=j+1; k++; } } } else j++; } } zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0; zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0; zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0; zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0; zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4]; zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4]; zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4]; zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4]; num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0; num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0; num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0; num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0; for (i=1;i<=4;i++){ k=1; j=1; while (j<5){ if (zz[i][j]!=0){if (j==4) {num[i][k]=zz[i][j];j++; } else { if (zz[i][j]==zz[i][j+1]){ num[i][k]=zz[i][j]*2; score=zz[i][j]*2+score; k++; j=j+2; } else { num[i][k]=zz[i][j]; j=j+1; k++; } } } else j++; } } system("CLS"); nextt();}void right(){ //右 int i,j,k; int zz[5][5]; zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0; zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0; zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0; zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0; zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4]; zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4]; zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4]; zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4]; num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0; num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0; num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0; num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0; for (i=1;i<=4;i++){ k=4; j=4; while (j>0){ if (zz[i][j]!=0){if (j==1) {num[i][k]=zz[i][j];j--; } else { if (zz[i][j]==zz[i][j-1]){ num[i][k]=zz[i][j]*2; score=zz[i][j]*2+score; k--; j=j-2; } else { num[i][k]=zz[i][j]; j=j-1; k--; } } } else j--; } } zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0; zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0; zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0; zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0; zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4]; zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4]; zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4]; zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4]; num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0; num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0; num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0; num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0; for (i=1;i<=4;i++){ k=4; j=4; while (j>0){ if (zz[i][j]!=0){if (j==1) {num[i][k]=zz[i][j];j--; } else { if (zz[i][j]==zz[i][j-1]){ num[i][k]=zz[i][j]*2; score=zz[i][j]*2+score; k--; j=j-2; } else { num[i][k]=zz[i][j]; j=j-1; k--; } } } else j--; } } system("CLS"); nextt();}void nextt(){ //随机生成新方块 开始下一次 srand((int)time(0)); int i,j,k; k=0; for (i=1;i<5;i++) for (j=1;j<5;j++) if (num[i][j]!=0) k++; if (k==16) {return;} i=1+(int)(4.0*rand()/(RAND_MAX+1.0)); j=1+(int)(4.0*rand()/(RAND_MAX+1.0)); while (num[i][j]!=0){ i=1+(int)(4.0*rand()/(RAND_MAX+1.0)); j=1+(int)(4.0*rand()/(RAND_MAX+1.0)); } num[i][j]=2; outt();}
希望大家能去看看这个代码 自己去分析一下 也可以自己模仿这这个代码自己去写一个2048 再来一点自己的创新什么的在里面。 希望大家能愉快的学习。
C语言实现2048
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。