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. 普大喜奔 | Azure 免费送网站SSL证书啦!
  2. P4884-多少个1?【BSGS】
  3. 【2018.4.7】模拟赛之五-ssl2386 序列【dp】
  4. 基于XML操作辅助类
  5. OJ 21658::Monthly Expense(二分搜索+最小化最大值)
  6. Cordova原理一
  7. 服务器网卡支持热插拔吗,HDMI接口能“热插拔”吗?这篇告诉你
  8. 第五章 执行计划详解
  9. Vue输入框快速调出数字键盘
  10. dostyle 东格TJ3401 显示器 固件升级
  11. 一键制作所有微信好友头像墙照
  12. Android画图demo
  13. 服务监控可以监控哪些
  14. unity怎么导入系统的树_Unity5.0_树_软件教程_资源库
  15. Kafka Group coordinator xxx:9092 (id: xxx rack: null) is unavailable or invalid
  16. HashMap的get/put
  17. QT读书笔记—绘图基础
  18. 独家 | 2019届互联网校招高薪清单出炉
  19. Gradle –如果测试失败,如何继续构建
  20. 驱动2-Linux设备模块

热门文章

  1. 2022-2028年全球与中国汽车清洁用品行业市场深度调研及投资预测分析
  2. Linux发行版和安装的基本知识(转)
  3. 制作标签(Label)
  4. 蓄电池内阻在线监测及告警方案
  5. 已解决——“搜狗输入法如何进行候选页翻页”
  6. 企业做网络营销获取免费流量需要付出努力和一定的成本
  7. 【python 打印格式化】python 中的打印美颜机pprint
  8. 苹果因键盘不好使赔3.4亿,SpaceX接单韦布后继者,META起诉Meta,今日更多新鲜事在此...
  9. IDEA2018破解
  10. 台式计算机运行慢怎么样能提高速度,怎么让电脑速度变快win7,win7运行速度提高90%的方法...