马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 kklloo 于 2015-1-6 16:39 编辑
这个是小组里一个学弟写的2048
相信大家都玩过2048八 快来玩玩八
温馨提示:用数字来代替上下左右键 5213分别代表上下左右- #include<stdio.h>
- #include<stdlib.h>
- #include<time.h>
- int num[5][5]; //定义函数和变量
- int score;
- void 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);
- }
- void 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();
- }
复制代码
|