2048游戏
来源:互联网 发布:mac os 彻底删除软件 编辑:程序博客网 时间:2024/05/19 20:01
游戏动过dos窗口不断刷新进行实现,画面比较丑陋。练手用的。
#include "stdio.h"#include "stdlib.h"#include "time.h"#include "conio.h"int And (int a[][4],int point){int i,j,k,move=0; switch(point){case 8:{for(j=0;j<4;j++)for(i=0;i<4;i++){if(a[i][j]==0){for(k=i+1;k<4;k++)if(a[k][j]!=0){move=1;a[i][j]=a[k][j];a[k][j]=0;break;}if(k==4)break;}for(k=i+1;k<4;k++){if(a[k][j]!=a[i][j] &&a[k][j]!=0)break;if(a[k][j]==a[i][j]){move=1;a[i][j]+=a[k][j];a[k][j]=0;break;}}}break;}case 4:{for(i=0;i<4;i++)for(j=0;j<4;j++){if(a[i][j]==0){for(k=j+1;k<4;k++)if(a[i][k]!=0){move=1;a[i][j]=a[i][k];a[i][k]=0;break;}if(k==4)break;}for(k=j+1;k<4;k++){if(a[i][k]!=a[i][j] &&a[i][k]!=0)break;if(a[i][k]==a[i][j]){move=1;a[i][j]+=a[i][k];a[i][k]=0;break;}}}break;}case 5:{for(j=0;j<4;j++)for(i=3;i>=0;i--){if(a[i][j]==0){for(k=i-1;k>=0;k--)if(a[k][j]!=0){move=1;a[i][j]=a[k][j];a[k][j]=0;break;}if(k==-1)break;}for(k=i-1;k>=0;k--){if(a[k][j]!=a[i][j] &&a[k][j]!=0)break;if(a[k][j]==a[i][j]){move=1;a[i][j]+=a[k][j];a[k][j]=0;break;}}}break;}case 6:{for(i=0;i<4;i++)for(j=3;j>=0;j--){if(a[i][j]==0){for(k=j-1;k>=0;k--)if(a[i][k]!=0){move=1;a[i][j]=a[i][k];a[i][k]=0;break;}if(k==4)break;}for(k=j-1;k>=0;k--){if(a[i][k]!=a[i][j] && a[i][k]!=0)break;if(a[i][k]==a[i][j]){move=1;a[i][j]+=a[i][k];a[i][k]=0;break;}}}break;}default :{printf("error! please again!!\n");point=getch();And(a,point-48);}}return move;} void Fill_in(int a[][4]){int line,row,random;do{line=rand()%4; row=rand()%4;}while(a[line][row]!=0);random=rand()%2;if(random==0)a[line][row]=2;elsea[line][row]=4;}void output(int a[][4],int sum){int i,j;printf("\n\t\t||||======================================||||\n");printf("\n\t\t||||===========上下左右为8,5,4,6==========||||\n",sum);printf("\n\t\t|============================================|\n");printf("\n\t\t|============= The sum is %5d =========|\n",sum);printf("\n\t\t|============================================|\n");printf("\t\t\t|---------------------------|\n");for(i=0;i<4;i++){ printf("\t\t\t|");for(j=0;j<4;j++)if(a[i][j]!=0)printf("%4d |",a[i][j]);elseprintf(" |");printf("\n\t\t\t|---------------------------|\n");}} int executable(int a[][4]){int i,j,flag=0,sum=0;for(i=0;i<4;i++)for(j=0;j<4;j++){ sum+=a[i][j];if(a[i][j]==0)flag=1;} return sum*10+flag;}void game(int a[][4]){int point;while(executable(a)%10){Fill_in(a);output(a,executable(a)/10);do{point=getch();printf("\t\t\tcan't move\n");}while(!And(a,point-48) && executable(a)%10);system("CLS"); }printf("\t\t\tlose\n"); }void clean(int a[][4]){int i,j;for(i=0;i<4;i++)for(j=0;j<4;j++) a[i][j]=0;}int main(){system("color 1e");int a[4][4]={0};int again=1;srand(time(0));while(again==1){game(a);printf("If you want to again,point \"1\",else point \"0\"\n");scanf("%d",&again);clean(a);system("CLS"); }return 0;}
0 0
- 2048游戏
- 游戏2048
- 2048游戏
- 2048游戏
- c++版2048游戏
- android 2048 游戏 源码
- javascript版 2048游戏
- 游戏源码2048
- 网页版<2048>游戏
- cocos2dx开发2048游戏
- android 2048游戏实现
- 2048游戏java版
- 2048 Puzzle游戏攻略
- 2048游戏的逻辑
- C++控制台游戏2048
- HTML5开发游戏“2048”
- 游戏2048的实现
- Cocos2dx------2048游戏
- Android 常见控件Spinner
- revit二次开发 提取模型线边缘并将之变成模型线
- Win7+IE11下,下载文件打开失败
- 解决谷歌浏览器不能打开html提示没有注册类
- ACM-ICPC 最短路径问题
- 2048游戏
- 欢迎使用CSDN-markdown编辑器
- Express之托管静态文件
- 正/逆向最大匹配算法
- TensorFlow下的MNIST关键原理与参数理解
- 工业制造中PHM的云架构
- 全面介绍Android Studio中Git 的使用(一)
- MyBatis(八) resultMap 之 (三) 延迟加载 (懒加载)
- 指针与引用的区别