用C语言做一个走迷宫代码
Hello大家好,我是木头做的鱼,木鱼啊。
今天我要分享一个的走迷宫游戏代码。
(作者制作不易,请珍惜)
我们可以先设计一个简单的迷宫先,代码如下:
char a [50][50]={"######",
"#O # ",
"# ## #",
"# # #",
"## # #",
"######",
};
迷宫记忆好后,我们就要想办法将这个迷宫输入到屏幕上。
for(i=0;i<=5;i++)
puts(a[i]);
上面这个for循环从0~5,共进行了6次循环,一次输出的第0~5行puts(a[i]);是输出每一行的字符串。
对上面的代码做个小结,输出迷宫的完整代码如下。
#include< stdio.h>
#include< stdlib.h>
#include< windows.h>
int main()
{
char a [50][50]={"######",
"#O # ",
"# ## #",
"# # #",
"## # #",
"######",
};
int i,x,y,p,q;
x=1;y=1;p=1;q=5;
for(i=0;i<=5;i++)
puts(a[i]);
Sleep(5000)
return 0;
}
在上面的代码中,我们用变量X和Y来存储小球的初始位置,用变量Q和P来存储迷宫的出口,请注意字符串是从零开始计数的,千万别算错了小球的初始位置及迷宫的出口位置。
现在我们就要想办法控制小球了,这里利用界面上的wsad4个按键来控制这个小球进行上下左右移动。当然如果你喜欢也可以用别的按键。
第1步下来控制小球,向下移动,也就是当年下S键时小球向下移动一步,那么如何获得S这个按键呢?换句话说,当你按键S键时,我们的程序怎样知道你按的是S键呢。很简单,因为你按下S键时本质是输入了一个字符,S我们只需要读取这个字符S就可以了。我们可以使用ch=getch();。
好,我们已经将键盘上敲击的字符存储在字符变量ch中了,接下来实现当敲击字符S时,让小球向下移动一步。
if(ch=='s')
{
if(a[x+1][y]!='#')
{
a[x][y]=' ';
x++;
a[x][y]='O';
}
}
在上面的这段代码中,我们通过一幅语句来判断刚才敲击的是否是字符,如果是字母S,我们就让小球向下移动一步,但是让小球在向下移动之前是需要首先判断下一步是否能移动,如果下一步不是栅栏“#”时小球才能移动。
因为小球的位置有了变化,因此还需要一些新迷宫的状态重新打印一次,在打印前记得要将之前的屏幕清屏,代码如下。
system("cls");
for(i=0;i<=5;i++)
puts(a[i]);
运行一下,再然后再按一下S键,不是可以看到小球向下移动一步了呢,但是你只能移动一步,如何实现连续移动的很简单,我们可以通过while循环来解决。
暂时先使用while(1)无限循环来解决这个问题。好了,运行一下吧,此时小球是不是可以连续移动了?当然目前小球还只能朝一个方向与运动,接下来我们就要来实现小球向其他三个方向运动。
向其他三个方向移动,其实和上下移动是差不多的,只是注意X在变化还是在Y的变化,是加1还是减1就可以了。
你是不是已经成功的走出了迷宫,可是貌似程序并没有让你很惊喜,因为没有判定你已经成功,最后我们来写一个获胜的检验部分。其实我们只需将我们之前写的while(1)改为while(x!=p||y!=q)就可以了。记得吗?之前我用P和Q分别存储了迷宫出口位置的坐标,当然了,在最后我们只需要打印你获胜了,完整代码如下。
#include< stdio.h>
#include< stdlib.h>
#include< windows.h>
int main()
{
char a [50][50]={"######",
"#O # ",
"# ## #",
"# # #",
"## # #",
"######",
};
int i,x,y,p,q;
x=1;y=1;p=1;q=5;
while(1)
{
for(i=0;i<=5;i++)
puts(a[i]);
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");
for(i=0;i<=5;i++)
puts(a[i]);
}
system("cls");
printf("You win!\n");
Sleep(5000)
return 0
}
恭喜你已经搞定了,一个完整的走迷宫程序,太不容易了!其实我这样一个字母一个字母的打,我也很累。当然了也可以让迷宫更加复杂,更加好玩。怎样改得更复杂,更加好玩,你就自己琢磨去吧!我在这里就不说了。
这篇文章我也发在过其他程序上。有人说竟然我是海鱼。我再说一遍吧。
我是木头做的鱼,木鱼啊,咱们下篇文章,再见拜拜。
用C语言做一个走迷宫代码相关推荐
- C语言实现一个走迷宫小游戏(深度优先算法)
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C++的语法(使用Dev-C++并且文件扩展名为.cpp的没有影响),如果有的朋友使用的语言标准是VC6的话可能不支持,所以在修改过后再上传一版, ...
- 手动搜索迷宫游戏 c语言,C语言实现一个走迷宫小游戏(深度优先算法)
接上一篇万年历博文,还是那位朋友的练习题.这次是使用C语言做一个小游戏程序,三选一(2048.8皇后和迷宫游戏),我选择的是迷宫(文章末尾有程序截图).个人认为这个程序的难点在于迷宫地图的绘制,也就是 ...
- 用C语言做一个迷宫小游戏
用C语言做一个迷宫小游戏,以下是代码段 这个迷宫游戏使用了递归回溯算法来寻找通往出口的路径.迷宫中的墙用'#'表示,路径用空格表示,入口和出口分别用'S'和'E'表示,已走过的路径用'*'表示.在生成 ...
- c语言自动按键脚本,C语言键盘控制走迷宫小游戏
本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下 在看了<啊哈C语言>之后想写一个游戏demo 游戏的截图 首先是启动界面 然后是初始化 接下来是键盘操控 ...
- c语言大作业走迷宫,基于C语言实现简单的走迷宫游戏
本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 学数据结构时用"栈"写的一个走迷宫程序,实际上用到双向队列,方便在运行完毕后输出经过的点. #includ ...
- c语言大作业走迷宫,C语言笔记07_小游戏设计——“走迷宫”
C语言07 小游戏设计--走迷宫 目标: 我们要设计一个完整的小游戏"走迷宫".你将可以通过控制键盘上的"W"."S"."A&qu ...
- C语言小项目——走迷宫
C语言小项目--走迷宫 设计方向: 1.定义二维字符数组作为迷宫 2.定义变量记录老鼠的位置 3.判定移动后位置的变化 4.记录游戏时长 5.判定到达终点的条件 总体设计: 1.用不同字符代表墙.老鼠 ...
- C语言实现老鼠走迷宫(附源码)
CSDN源码下载:C语言实现老鼠走迷宫.zip 1.需求分析 利用二维数组创建一个随机迷宫或者自定义迷宫,再在迷宫中找到一条从起点到终点的路径,并用图形界面显示. 2.概要设计 3.详细设计 输入 ...
- python迷宫万花筒代码_用Python3写一个走迷宫的小程序(图形化:matplotlib,dfs,prim)...
先看一下动态效果图(慢放): 首先生成迷宫: 主要用了两个算法:Prim和dfs 总结:Prim生成的比较像真正的迷宫,所以默认用了Prim生成迷宫 先输入n,m,会生成一个迷宫(prim生成),然后 ...
最新文章
- 对order by的理解
- mysql 全值匹配什么意思
- Linux--DHCP
- Linux程序开机启动
- 手把手教你刷新BACKUP Bios
- SSTable数据结构
- 深圳零基础自学python_深圳学习python
- 如何处理object family XXX is not intended for installed base category issue
- web.csproj Compile 下出现两个同名 xxx.cs 项目中出现两个xxx.cs
- HTML5表单那些事
- HTML DOM教程 18-HTML DOM Body 对象
- On Inferring Autonomous System Relationships in the Internet 论文阅读笔记
- 大学计算机阶段考试不及格,大学考试不及格不能毕业吗?
- 多线程同步——哲学家吃饭问题
- python3.7以上使用pyinstaller将py文件打包为exe ,解决安装后显示‘pyinstaller‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的错误
- 学3D建模能作为副业吗?
- 2018校招笔试真题汇总(java/C++)
- 软件能力成熟度模型(CMM)
- 没想到马斯克魅力如此强大,来中国一趟特斯拉市值一夜就涨1800亿
- 【更新了资源链接】几行小代码保持浏览器活跃 辅助挖共生币