2048小游戏c语言编程设计
更新时间:2024-01-26 23:11: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语言编程设计01-26
友谊岁月02-19
涵洞通道施工技术交底07-22
统计与测量作业3 区间估计习题10-24
ChinaFSAE方程式赛车悬架系统设计分析 - 图文07-03
有机化学复习题11-28
妈妈包的饺子作文700字06-22
电气整套启动调试措施09-17
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 语言编程
- 小游戏
- 设计
- 2048
- 三硼酸锂电子结构及光学性质
- 组织部长三走进三服务活动手记
- 中医妇科习题
- 谈谈敦煌变文的几点看法
- 金算盘软件操作手册
- 地铁车站雨季防汛施工方案
- 科研经费管理规定(2012)3号文
- ARCGIS网络分析学习――道路网络分析Network anlysis(详细步骤)
- 华中科技大学光学课程设计报告
- 基础工程题目及答案
- 新疆少数民族外贸企业经营现状及发展对策分析
- (强烈推荐)步进驱动系统与数控圆弧插补三菱PLC程序设计毕业论文 - 图文
- 2013年北京市应急志愿者培训在线考评 - 2套试题
- 人教版八年级英语下册第一单元知识点归纳总结 doc
- 1334高一化学期末综合训练一
- 中国地质大学(北京)地球化学复习题第二章
- 列车自动控制系统(ATC)
- 专业秘书教材(发出)
- 中石化胜利油田专业技术职务任职资格评审问题解答
- 工业企业煤气安全规程(GB6222-2005) - 图文