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语言做一个走迷宫代码相关推荐

  1. C语言实现一个走迷宫小游戏(深度优先算法)

    补充一下,先前文章末尾给出的下载链接的完整代码含有部分C++的语法(使用Dev-C++并且文件扩展名为.cpp的没有影响),如果有的朋友使用的语言标准是VC6的话可能不支持,所以在修改过后再上传一版, ...

  2. 手动搜索迷宫游戏 c语言,C语言实现一个走迷宫小游戏(深度优先算法)

    接上一篇万年历博文,还是那位朋友的练习题.这次是使用C语言做一个小游戏程序,三选一(2048.8皇后和迷宫游戏),我选择的是迷宫(文章末尾有程序截图).个人认为这个程序的难点在于迷宫地图的绘制,也就是 ...

  3. 用C语言做一个迷宫小游戏

    用C语言做一个迷宫小游戏,以下是代码段 这个迷宫游戏使用了递归回溯算法来寻找通往出口的路径.迷宫中的墙用'#'表示,路径用空格表示,入口和出口分别用'S'和'E'表示,已走过的路径用'*'表示.在生成 ...

  4. c语言自动按键脚本,C语言键盘控制走迷宫小游戏

    本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下 在看了<啊哈C语言>之后想写一个游戏demo 游戏的截图 首先是启动界面 然后是初始化 接下来是键盘操控 ...

  5. c语言大作业走迷宫,基于C语言实现简单的走迷宫游戏

    本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 学数据结构时用"栈"写的一个走迷宫程序,实际上用到双向队列,方便在运行完毕后输出经过的点. #includ ...

  6. c语言大作业走迷宫,C语言笔记07_小游戏设计——“走迷宫”

    C语言07 小游戏设计--走迷宫 目标: 我们要设计一个完整的小游戏"走迷宫".你将可以通过控制键盘上的"W"."S"."A&qu ...

  7. C语言小项目——走迷宫

    C语言小项目--走迷宫 设计方向: 1.定义二维字符数组作为迷宫 2.定义变量记录老鼠的位置 3.判定移动后位置的变化 4.记录游戏时长 5.判定到达终点的条件 总体设计: 1.用不同字符代表墙.老鼠 ...

  8. C语言实现老鼠走迷宫(附源码)

    CSDN源码下载:C语言实现老鼠走迷宫.zip 1.需求分析   利用二维数组创建一个随机迷宫或者自定义迷宫,再在迷宫中找到一条从起点到终点的路径,并用图形界面显示. 2.概要设计 3.详细设计 输入 ...

  9. python迷宫万花筒代码_用Python3写一个走迷宫的小程序(图形化:matplotlib,dfs,prim)...

    先看一下动态效果图(慢放): 首先生成迷宫: 主要用了两个算法:Prim和dfs 总结:Prim生成的比较像真正的迷宫,所以默认用了Prim生成迷宫 先输入n,m,会生成一个迷宫(prim生成),然后 ...

最新文章

  1. 对order by的理解
  2. mysql 全值匹配什么意思
  3. Linux--DHCP
  4. Linux程序开机启动
  5. 手把手教你刷新BACKUP Bios
  6. SSTable数据结构
  7. 深圳零基础自学python_深圳学习python
  8. 如何处理object family XXX is not intended for installed base category issue
  9. web.csproj Compile 下出现两个同名 xxx.cs 项目中出现两个xxx.cs
  10. HTML5表单那些事
  11. HTML DOM教程 18-HTML DOM Body 对象
  12. On Inferring Autonomous System Relationships in the Internet 论文阅读笔记
  13. 大学计算机阶段考试不及格,大学考试不及格不能毕业吗?
  14. 多线程同步——哲学家吃饭问题
  15. python3.7以上使用pyinstaller将py文件打包为exe ,解决安装后显示‘pyinstaller‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的错误
  16. 学3D建模能作为副业吗?
  17. 2018校招笔试真题汇总(java/C++)
  18. 软件能力成熟度模型(CMM)
  19. 没想到马斯克魅力如此强大,来中国一趟特斯拉市值一夜就涨1800亿
  20. 【更新了资源链接】几行小代码保持浏览器活跃 辅助挖共生币

热门文章

  1. 【算法学习】少年,婚姻介绍所了解下
  2. 不需要任何插件,纯 CSS 就能打造炫酷文字特效
  3. 聚宽 | 高校免费支持计划,用专业产品服务量化教育
  4. 我关于搜狗输入法的用户体验描述
  5. Django之头像实时展示到input框、图片验证码、简单发邮件
  6. hadoop配置ssh无密码登录
  7. 设计师的最爱:免费素材网站
  8. 使用ShaderGraph 实现水面效果
  9. Postgres个人学习笔记
  10. JXL导出excel