C语言2048源代码
更新时间:2023-10-19 09:30:01 阅读量: 综合文库 文档下载
#include
void Generat_picture(int d[N][N],char c[N][N][N],int s); void Control_synthesis(int a[N][N]); void add_num(int a[N][N]); void swap(int *a,int *b); int score(int a[N][N]); int moveup(int a[N][N]); int movedown(int a[N][N]); int moveleft(int a[N][N]); int moveright(int a[N][N]); int main() {
int d[N][N]; char c[N][N][N]; int i,j,s=2; system(\ for(i=0; i add_num(d); Generat_picture(d,c,s); Control_synthesis(d); s=score(d); } return 0; } void Generat_picture(int d[N][N],char c[N][N][N],int s) { int i,j,k; for(i=0; i if(d[i][j]==0) { c[i][j][0]=' '; c[i][j][1]=' '; c[i][j][2]=' '; c[i][j][3]=' '; } else { c[i][j][0]=(int)(d[i][j]/1000)+48; //4358 c[i][j][1]=(int)(d[i][j]/100)+48; c[i][j][2]=(int)(d[i][j]/10)+48; c[i][j][3]=d[i][j]+48; for(k=0; k system(\ printf(\得分:%d\\n\ printf(\┏━━┳━━┳━━┳━━┓\\n\ printf(\ ┃ %c%c%c%c ┃ %c%c%c%c ┃ %c%c%c%c ┃ %c%c%c%c ┃ \\n\[1],c[0][2][2],c[0][2][3],c[0][3][0],c[0][3][1],c[0][3][2],c[0][3][3]); printf(\┣━━╋━━╋━━╋━━┫\\n\ printf(\ ┃ %c%c%c%c ┃ %c%c%c%c ┃ %c%c%c%c ┃ %c%c%c%c ┃ \\n\[1],c[1][2][2],c[1][2][3],c[1][3][0],c[1][3][1],c[1][3][2],c[1][3][3]); printf(\┣━━╋━━╋━━╋━━┫\\n\ printf(\ ┃ %c%c%c%c ┃ %c%c%c%c ┃ %c%c%c%c ┃ %c%c%c%c ┃ \\n\[1],c[2][2][2],c[2][2][3],c[2][3][0],c[2][3][1],c[2][3][2],c[2][3][3]); printf(\┣━━╋━━╋━━╋━━┫\\n\ printf(\ ┃ %c%c%c%c ┃ %c%c%c%c ┃ %c%c%c%c ┃ %c%c%c%c ┃ \\n\[1],c[3][2][2],c[3][2][3],c[3][3][0],c[3][3][1],c[3][3][2],c[3][3][3]); printf(\┗━━┻━━┻━━┻━━┛\\n\ printf(\控制方向\\n\} void Control_synthesis(int a[N][N]) { int c,flag; label: c=getch(); if(c=='w'||c=='W') flag=moveup(a); else if(c=='s'||c=='S') flag=movedown(a); else if(c=='a'||c=='A') flag=moveleft(a); else if(c=='d'||c=='D') flag=moveright(a); else { printf(\重新输入:\\n\ goto label; } if(flag==0) goto label; } void add_num(int a[N][N]) { int i,j,k,t=0; int *p[16]; srand((unsigned int)time(0)); for(i=0; i p[t]=&a[i][j]; t++; } k=rand()%t; *p[k]=2; } int moveup(int a[N][N]) { int t,p=0,q=0; for(t=0; t if(a[0][t]==a[1][t]&&a[2][t]==a[3][t]&&a[0][t]!=0&&a[2][t]!=0) { a[1][t]*=2; a[3][t]*=2; a[0][t]=a[t][2]=0; } else if(a[0][t]==a[1][t]&&a[0][t]!=0) { a[0][t]=0; a[1][t]*=2; } else if(a[0][t]==a[2][t]&&a[1][t]==0&&a[0][t]!=0) { a[0][t]=0; a[2][t]*=2; } else if(a[1][t]==a[2][t]&&a[1][t]!=0) { a[1][t]=0; a[2][t]*=2; } else if(a[0][t]==a[3][t]&&a[1][t]==0&&a[2][t]==0&&a[0][t]!=0) { a[0][t]=0; a[3][t]*=2; } else if(a[1][t]==a[3][t]&&a[2][t]==0&&a[1][t]!=0) { a[1][t]=0; a[3][t]*=2; } else if(a[2][t]==a[3][t]&&a[2][t]!=0) { a[2][t]=0; a[3][t]*=2; } else p++; int n=3; while(n--) { if(a[2][t]==0&&a[3][t]!=0) { swap(&a[2][t],&a[3][t]); q++; } if(a[1][t]==0&&a[2][t]!=0) { swap(&a[1][t],&a[2][t]); q++; } if(a[0][t]==0&&a[1][t]!=0) { swap(&a[0][t],&a[1][t]); q++; } } } if(4==p&&q==0) return 0; else return 1; } int movedown(int a[N][N]) { int t,p=0,q=0; for(t=0; t if(a[0][t]==a[1][t]&&a[2][t]==a[3][t]&&a[0][t]!=0&&a[2][t]!=0) { a[1][t]*=2; a[3][t]*=2; a[0][t]=a[t][2]=0; } else if(a[2][t]==a[3][t]&&a[2][t]!=0) { a[2][t]=0; a[3][t]*=2; } else if(a[1][t]==a[3][t]&&a[2][t]==0&&a[1][t]!=0) { a[1][t]=0; a[3][t]*=2; } else if(a[0][t]==a[3][t]&&a[1][t]==0&&a[2][t]==0&&a[0][t]!=0) { a[0][t]=0; a[3][t]*=2; } else if(a[1][t]==a[2][t]&&a[1][t]!=0) { a[1][t]=0; a[2][t]*=2; } else if(a[0][t]==a[2][t]&&a[1][t]==0&&a[0][t]!=0) { a[0][t]=0; a[2][t]*=2; } else if(a[0][t]==a[1][t]&&a[0][t]!=0) { a[0][t]=0; a[1][t]*=2; } else p++; int n=3; while(n--) { if(a[1][t]==0&&a[0][t]!=0) { swap(&a[0][t],&a[1][t]); q++; } if(a[2][t]==0&&a[1][t]!=0) { swap(&a[1][t],&a[2][t]); q++; } if(a[3][t]==0&&a[2][t]!=0) { swap(&a[2][t],&a[3][t]); q++; } } } if(4==p&&q==0) return 0; else return 1; } int moveleft(int a[N][N]) { int t,p=0,q=0; for(t=0; t if(a[t][0]==a[t][1]&&a[t][2]==a[t][3]&&a[t][0]!=0&&a[t][1]!=0) { a[t][1]*=2; a[t][3]*=2; a[t][0]=a[t][2]=0; } else if(a[t][0]==a[t][1]&&a[t][0]!=0) { a[t][0]=0; a[t][1]*=2; } else if(a[t][0]==a[t][2]&&a[t][1]==0&&a[t][0]!=0) { a[t][0]=0; a[t][2]*=2; } else if(a[t][1]==a[t][2]&&a[t][1]!=0) { a[t][1]=0; a[t][2]*=2; } else if(a[t][0]==a[t][3]&&a[t][1]==0&&a[t][2]==0&&a[t][0]!=0) { a[t][0]=0; a[t][3]*=2; } else if(a[t][1]==a[t][3]&&a[t][2]==0&&a[t][1]!=0) { a[t][1]=0; a[t][3]*=2; } else if(a[t][2]==a[t][3]&&a[t][2]!=0) { a[t][2]=0; a[t][3]*=2; } else p++; int n=3; while(n--) { if(a[t][2]==0&&a[t][3]!=0) { swap(&a[t][2],&a[t][3]); q++; } if(a[t][1]==0&&a[t][2]!=0) { swap(&a[t][1],&a[t][2]); q++; } if(a[t][0]==0&&a[t][1]!=0) { swap(&a[t][0],&a[t][1]); q++; } } } if(4==p&&q==0) return 0; else return 1; } int moveright(int a[N][N]) { int t,p=0,q=0; for(t=0; t if(a[t][0]==a[t][1]&&a[t][2]==a[t][3]&&a[t][0]!=0&&a[t][1]!=0) { a[t][1]*=2; a[t][3]*=2; a[t][0]=a[t][2]=0; } else if(a[t][2]==a[t][3]&&a[t][2]!=0) { a[t][2]=0; a[t][3]*=2; } else if(a[t][1]==a[t][3]&&a[t][2]==0&&a[t][1]!=0) { a[t][1]=0; a[t][3]*=2; } else if(a[t][0]==a[t][3]&&a[t][1]==0&&a[t][2]==0&&a[t][0]!=0) { a[t][0]=0; a[t][3]*=2; } else if(a[t][1]==a[t][2]&&a[t][1]!=0) { a[t][1]=0; a[t][2]*=2; } else if(a[t][0]==a[t][2]&&a[t][1]==0&&a[t][0]!=0) { a[t][0]=0; a[t][2]*=2; } else if(a[t][0]==a[t][1]&&a[t][0]!=0) { a[t][0]=0; a[t][1]*=2; } else p++; int n=3; while(n--) { if(a[t][1]==0&&a[t][0]!=0) { swap(&a[t][0],&a[t][1]); q++; } if(a[t][2]==0&&a[t][1]!=0) { swap(&a[t][1],&a[t][2]); q++; } if(a[t][3]==0&&a[t][2]!=0) { swap(&a[t][2],&a[t][3]); q++; } } } if(4==p&&q==0) return 0; else return 1; } void swap(int *a,int *b) { int t; t=*a; *a=*b; *b=t; } int score(int a[N][N]) { int i,j,s=0; for(i=0; i
正在阅读:
C语言2048源代码10-19
第三章 测试信号调理电路07-20
公路工程安全生产制度含各种监理单位安全管理制度汇总04-18
装修风格05-31
广西省玉林市容县2016-2017学年第二学期期末考试八年级物理试题06-09
快速减肚子的10个瘦腰运动05-27
25建设总部泥头车管理办法05-08
中国古代文学常识全解07-07
中考不规则动词表(带音标)05-16
六年级地理下册知识点 - 图文03-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 源代码
- 语言
- 2048
- 100测评网中考数学:方案设计型专题复习(苏科版九年级)
- 2018年综合办公室主任年度工作总结范文独家总结范文
- sap移动类型
- 关于乌鲁木齐马术俱乐部的经营及管理现状
- 成本会计考试复习题及参考答案
- 建筑资格证重要考题(1)
- 市委书记在金融工作会议上的讲话
- 从课本到奥数六年级 行程问题
- 狂犬疫苗接种五针免疫程序
- 长方形和正方形的面积习题精选
- 帕萨特B501N常见故障故障诊断-职业学院毕业论文
- 交通大学15年7月《无机及分析化学》在线作业考查课试题(更新)
- 诗歌节奏
- 品德与社会五年级上册实践题及部分答案
- 法学方法论单选
- 《铁道信号远程控制》练习册答案
- “感恩为先,饮水思源”演讲比赛策划书
- 长株潭城市群区域规划
- PKPM说明 - 图文
- 内蒙古工业大学vb题库