用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生成),然后 ...
最新文章
- 普大喜奔 | Azure 免费送网站SSL证书啦!
- P4884-多少个1?【BSGS】
- 【2018.4.7】模拟赛之五-ssl2386 序列【dp】
- 基于XML操作辅助类
- OJ 21658::Monthly Expense(二分搜索+最小化最大值)
- Cordova原理一
- 服务器网卡支持热插拔吗,HDMI接口能“热插拔”吗?这篇告诉你
- 第五章 执行计划详解
- Vue输入框快速调出数字键盘
- dostyle 东格TJ3401 显示器 固件升级
- 一键制作所有微信好友头像墙照
- Android画图demo
- 服务监控可以监控哪些
- unity怎么导入系统的树_Unity5.0_树_软件教程_资源库
- Kafka Group coordinator xxx:9092 (id: xxx rack: null) is unavailable or invalid
- HashMap的get/put
- QT读书笔记—绘图基础
- 独家 | 2019届互联网校招高薪清单出炉
- Gradle –如果测试失败,如何继续构建
- 驱动2-Linux设备模块
热门文章
- 2022-2028年全球与中国汽车清洁用品行业市场深度调研及投资预测分析
- Linux发行版和安装的基本知识(转)
- 制作标签(Label)
- 蓄电池内阻在线监测及告警方案
- 已解决——“搜狗输入法如何进行候选页翻页”
- 企业做网络营销获取免费流量需要付出努力和一定的成本
- 【python 打印格式化】python 中的打印美颜机pprint
- 苹果因键盘不好使赔3.4亿,SpaceX接单韦布后继者,META起诉Meta,今日更多新鲜事在此...
- IDEA2018破解
- 台式计算机运行慢怎么样能提高速度,怎么让电脑速度变快win7,win7运行速度提高90%的方法...