2048小游戏c语言编程设计
更新时间:2024-04-11 07:19:01 阅读量: 综合文库 文档下载
#include
#include
int score, gameover, ifappear, gamew, gamef,move; char key;
void explation() {
void menu(); system(\
printf(\ printf(\ printf(\游戏规则***************\\n\ printf(\ printf(\ printf(\玩家可以选择上、下、左、右或W、A、S、D去移动滑块\\n\ printf(\玩家选择的方向上若有相同的数字则合并\\n\
printf(\合并所得的所有新生成数字相加即为该步的有效得分\\n\ printf(\玩家选择的方向行或列前方有空格则出现位移\\n\ printf(\每移动一步,空位随机出现一个2或4\\n\
printf(\棋盘被数字填满,无法进行有效移动,判负,游戏结束\\n\ printf(\棋盘上出现2048,获胜,游戏结束\\n\ printf(\按上下左右去移动滑块\\n\ printf(\请按任意键返回主菜单...\\n\ getch();
system(\ main(); }
void gamefaile() {
int i, j;
system(\
printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ for (j = 0; j<4; j++) {
for (i = 0; i<4; i++) if (num[j][i] == 0) printf(\ \
else
printf(\ printf(\
printf(\ }
printf(\你的成绩:%d,移动了%d步\\n\ printf(\请按任意键返回主菜单...\\n\ getch();
system(\ main(); }
void gamewin() {
int i, j;
system(\
printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ for (j = 0; j<4; j++) {
for (i = 0; i<4; i++) if (num[j][i] == 0) printf(\ \ else
printf(\ printf(\
printf(\ }
printf(\你的成绩:%d,移动了%d步\\n\ printf(\请按任意键返回主菜单...\\n\ getch();
system(\ main(); }
void prin() {
int i, j;
system(\
printf(\输出界面 printf(\
printf(\游戏开始***************\\n\ printf(\ printf(\
printf(\ 请按方向键或W、A、S、D移动滑块\\n\输出操作提示语句 printf(\ 按ESC返回至主菜单\\n\ printf(\
for (j = 0; j<4; j++) //输出4*4的表格 {
for (i = 0; i<4; i++) if (num[j][i] == 0) printf(\ \ else
printf(\ printf(\
printf(\ }
printf(\你的成绩:%d,移动了%d步\\n\输出得分和移动步数 }
void appear() {
int i, j,ran,t[16],x=0,a,b;
srand((int)time(0)); //随机种子初始化
for (j = 0; j < 4; j++) //将空白的区域的坐标保存到中间数组t中 for (i = 0; i < 4;i++) if (num[j][i] == 0) {
t[x] = j * 10 + i; x++; }
if (x == 1) //在t中随机取一个坐标 ran = x - 1; else
ran = rand() % (x - 1);
a = t[ran] / 10; //取出这个数值的十位数 b = t[ran] % 10; //取出这个数值的个位数 srand((int)time(0));
if ((rand() % 9)>2) //在此空白区域随机赋值2或4 num[a][b] = 2; else
num[a][b] = 4; }
void close() {
exit(0);
}
void add(int *p) {
int i=0, b; while (i<3) {
if (*(p + i) != 0) {
for (b = i + 1; b < 4; b++) {
if (*(p + b) != 0)
if (*(p + i) == *(p + b)) {
score = score + (*(p + i)) + (*(p + b)); *(p + i) = *(p + i) + *(p + b); if (*(p + i) == 2048) gamew = 1; *(p + b) = 0; i = b + i; ++ifappear; break; } else {
i = b; break; } }
if (b == 4) i++; } else i++; } }
void Gameplay() {
int i, j, g, e, a, b[4]; appear(); appear(); while (1) {
if (ifappear!=0) appear(); prin();
key = getch(); switch (key) {
case 'w': case 'W': case 72:
ifappear = 0;
for (j = 0; j < 4; j++) {
for (i = 0; i < 4; i++) {
b[i] = num[i][j]; num[i][j] = 0; }
add(b); e = 0;
for (g = 0; g < 4; g++) {
if (b[g] != 0) {
num[e][j] = b[g]; if (g != e)
++ifappear; e++; } } }
if (ifappear!=0) ++move; break; case 's': case 'S': case 80:
ifappear = 0;
for (j = 0; j < 4; j++) {
for (i = 0; i < 4; i++) {
b[i] = num[i][j]; num[i][j] = 0; }
正在阅读:
2048小游戏c语言编程设计04-11
《中学化学新课标解读》作业参考答案11-12
数据库原理(双语)习题assignment - of - module0211-19
木材种类大全 五05-31
幸福大院建设工作计划04-01
学术随笔 国际关系理论谱系中的 《大国政治的悲剧》06-01
基于单片机的二氧化碳浓度器设计(1)10-13
西工大材料考研试题04-04
这里风景独好作文500字07-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 语言编程
- 小游戏
- 设计
- 2048
- 基础工程题目及答案
- 教师阅读书目推荐
- 浙江省台州市2018年中考科学(化学部分)真题试题(含解析)
- 中国充气婴儿水池行业发展研究报告 - 图文
- 湘雅医学院08上口腔内科学 考试评分标准
- 2017届高考物理一轮复习 专题汇编 5 带电粒子在电场中运动的综合
- 公务员面试技巧:你真的懂考官想听什么
- 第十三章 光单元检测
- 2012年“金钥匙”科技竞赛(初三学生CESL活动)决赛试题 有答案
- 教育叙事之教育实习日记100篇
- 中医妇科习题
- 计量安全知识
- 高考重点卷专题复习: 历史视角下的中美关试题1
- 加强乡镇党委书记队伍建设的对策与思考
- 杨振威-论文 - 图文
- 油菜试验研究观察记载项目和标准
- 相平衡
- 地铁车站雨季防汛施工方案
- 综合实践活动课型及指导策略(转载)
- 社团工作手册 - 图文