玩转c语言 您所在的位置:网站首页 c语言的编程游戏 玩转c语言

玩转c语言

2024-07-09 12:28| 来源: 网络整理| 查看: 265

大家好,又见面了,我是你们的朋友全栈君。

第一步

要制作迷宫小游戏,我们要利用二维数组搭建场景,制作一个简易的迷宫

代码语言:javascript复制#include #include #include #include//小游戏所需的所有头文件 int main() { char a[100][100] = {"######", "#o # ", "# ## #", "# # #", "## #", "######" };//迷宫出口为a[1][5] //我们需要输出这个迷宫。 for (int i = 0; i < 6; i++) //通过数组的遍历,输出定义的迷宫; puts(a[i]); return 0; }

第一步迷宫制作完成后,我们就应该考虑如何让小球移动起来

为了游戏体验感

我们使用W,S,A,D来分别小球控制上下左右的移动

具体操作

在游戏中我们需要输入W,S,A,D中的一个,来控制小球的移动 以W为例我们来看看小球上移时程序该怎么运行 我们想让小球向上移动,基本条件是小球上方没有‘#’ 然后小球才可以向上移动; 小球上移后行数X+1,列数Y不变 即小球下一个的位置在a[x+1][y]

这就是我们点击W后小球上移的程序原理

注:为了游戏的体验感,我们输入WSAD是使用getch()

各位如果有兴趣也可以试一下使用getchar和getche是什么效果(吐血小游戏)

代码语言:javascript复制ch = _getch(); if (ch == 'a') { if (a[x][y - 1] != '#') { a[x][y] = ' '; y--; a[x][y] = 'o'; } }

其他的 S,A,D,也是类似的

S原理

代码语言:javascript复制ch = _getch(); if (ch == 's') { if (a[x + 1][y] != '#') { a[x][y] = ' '; x++; a[x][y] = 'o'; } }

A原理

代码语言:javascript复制if (ch == 'a') { if (a[x][y - 1] != '#') { a[x][y] = ' '; y--; a[x][y] = 'o'; } }

D原理

代码语言:javascript复制if (ch == 'd') { if (a[x][y + 1] != '#') { a[x][y] = ' '; y++; a[x][y] = 'o'; } }

我们在利用WSAD移动时,不希望小球出现在原来的位置

我们需要在每一次输入WSAD时用system(“cls”)进行一次清零;

我们需要利用while循环是程序在未到达出口时持续运行

代码语言:javascript复制 while (x != 1 || y != 5) { ch = _getch(); if (ch == 's') { if (a[x + 1][y] != '#') { a[x][y] = ' '; x++; a[x][y] = 'o'; } } if (ch == 'w') { if (a[x - 1][y] != '#') { a[x][y] = ' '; x--; a[x][y] = 'o'; } } if (ch == 'a') { if (a[x][y - 1] != '#') { a[x][y] = ' '; y--; a[x][y] = 'o'; } } if (ch == 'd') { if (a[x][y + 1] != '#') { a[x][y] = ' '; y++; a[x][y] = 'o'; } }

这个小游戏的器官大致就是这样

以下就是整个小游戏的源码

代码语言:javascript复制#include #include #include #include int main() { char a[100][100] = { "######", "#o # ", "# ## #", "# # #", "## #", "######" }; int i, x = 1, y = 1;//p,q存储迷宫出口的位置 for (i = 0; i < 6; i++) puts(a[i]); char ch; while (x != 1 || y != 5) { ch = _getch(); if (ch == 's') { if (a[x + 1][y] != '#') { a[x][y] = ' '; x++; a[x][y] = 'o'; } } if (ch == 'w') { if (a[x - 1][y] != '#') { a[x][y] = ' '; x--; a[x][y] = 'o'; } } if (ch == 'a') { if (a[x][y - 1] != '#') { a[x][y] = ' '; y--; a[x][y] = 'o'; } } if (ch == 'd') { if (a[x][y + 1] != '#') { a[x][y] = ' '; y++; a[x][y] = 'o'; } } system("cls"); if(x==1&&y==5) printf("成功过关\n"); for (i = 0; i < 6; i++) puts(a[i]); } return 0; }玩转c语言——c语言小游戏 迷宫小游戏(附源码)玩转c语言——c语言小游戏 迷宫小游戏(附源码)玩转c语言——c语言小游戏 迷宫小游戏(附源码)玩转c语言——c语言小游戏 迷宫小游戏(附源码)

这就是最后的运行结果,走出迷宫后会出现成功过关四个字

我们也可以对走过的步数进行计数;

定义一个count;每移动一次;count++

代码语言:javascript复制#include #include #include #include int main() { char a[1000][1000] = {"##########", "#o # # ", "# ## ## ##", "# # ##", "## ## ##", "##########" }; int i, x = 1, y = 1; int count=0; for (i = 0; i < 11; i++) puts(a[i]); char ch; while (x != 1|| y != 9) { ch = _getch(); count++; if (ch == 's') { if (a[x + 1][y] != '#') { a[x][y] = ' '; x++; a[x][y] = 'o'; } } if (ch == 'w') { if (a[x - 1][y] != '#') { a[x][y] = ' '; x--; a[x][y] = 'o'; } } if (ch == 'a') { if (a[x][y - 1] != '#') { a[x][y] = ' '; y--; a[x][y] = 'o'; } } if (ch == 'd') { if (a[x][y + 1] != '#') { a[x][y] = ' '; y++; a[x][y] = 'o'; } } system("cls"); if (x == 1 && y == 9) printf("成功过关\n"); for (i = 0; i < 6; i++) puts(a[i]); } printf("你一共走了%d步", count); Sleep(5000); return 0; }玩转c语言——c语言小游戏 迷宫小游戏(附源码)玩转c语言——c语言小游戏 迷宫小游戏(附源码)

最后的结果中会出现你总共移动的步数

tips:

我们可以将迷宫改动的复杂一点,来提高游戏体验感;由你们自己改造迷宫

我们也可以对走的步数进行计数,以此来比较谁到达终点的效率高

好了,学会了就可以快乐游戏了;

升级版来了(增加了步数统计和登陆界面,游戏菜单等)

代码语言:javascript复制#include #include #include #include int main() { printf(" 小球球走迷宫小游戏 \n\n"); printf("______________________________________________________________________________________________________________________\n"); printf(" 开始游戏 1\n\n"); printf(" 游戏音量 2\n\n"); printf(" 游戏设置 3\n\n"); printf(" 关闭游戏 4\n\n"); int k; scanf_s("%d",&k); system("cls"); if(k==1) { printf("使用adsw控制上下左右移动\n\n\n"); char a[100][100] = { "######", "#o # ", "# ## #", "# # #", "## #", "######" }; int i, x = 1, y = 1;//p,q存储迷宫出口的位置 for (i = 0; i < 6; i++) puts(a[i]); char ch; int count=0; while (x != 1 || y != 5) { ch = _getch(); count++; if (ch == 's') { if (a[x + 1][y] != '#') { a[x][y] = ' '; x++; a[x][y] = 'o'; } } if (ch == 'w') { if (a[x - 1][y] != '#') { a[x][y] = ' '; x--; a[x][y] = 'o'; } } if (ch == 'a') { if (a[x][y - 1] != '#') { a[x][y] = ' '; y--; a[x][y] = 'o'; } } if (ch == 'd') { if (a[x][y + 1] != '#') { a[x][y] = ' '; y++; a[x][y] = 'o'; } } system("cls"); if(x==1&&y==5) printf("成功过关\n\n\n"); for (i = 0; i < 6; i++) puts(a[i]); } printf("你一共走了%d步\n\n",count); } else if(k==4) printf("游戏结束\n\n"); else if(k==2) printf("打开qq音乐,放战歌,乌拉...\n\n\n"); else if(k==3) printf("请联系作者,并告诉他你想要的游戏设置,访问CSDN——2654501228\n\n\n"); system("pause"); return 0; }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144713.html原文链接:https://javaforall.cn



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有