Dev-c++编写走迷宫游戏 思路和代码 详解

创作背景

今天又是放元旦假的一天,无聊的我刷够了手机,就跑过去打开电脑······

熟悉的Dev-c++图标又映入我的眼帘,今天编点什么呢······

我绞尽脑汁,冥思苦想,终于想到了一个游戏——走迷宫。

今天的 走迷宫 游戏不会像之前的Blackjack游戏一样复杂,它只是非常简单的一个小游戏,也不太需要脑力,稍微地构造一个整体的框架,然后逐步细化就可以了。

玩法

玩家通过操纵按下键盘上的键(w--上,s--下,a--左,d--右,7--左上,9--右上,1--左下,3--右下,我个人觉得之所以我要用7、9、1、3这四个键,是因为这四个键在有小键盘的键盘上是分别居于左上、右上、左下、右下的位置,也许操控起来会更顺手)来控制移动方向,避开障碍,一直走到终点(迷宫大部分时候不存在迷宫无解的情况,因为我特地加了dfs深搜函数来确保迷宫有解,但我也不知道dfs深搜函数有没有用,如果在运行过程中遇到迷宫无解的情况,请在评论区吐槽,提前谢过)。

思路

首先在main()函数里面要输出 走迷宫 游戏的基本信息,让玩家先作了解;接着获取迷宫边长(1≤n,m≤10,也可以自己增减范围),对输入的n和m作不合法处理;然后根据n和m,随机生成一个迷宫界面;再编写一个dfs深搜函数,用来保证随机生成的迷宫界面有解(若无解就循环生成新的迷宫界面,直到迷宫界面有解),并随机确定起点坐标和终点坐标且令当前位置=起点坐标;再接下来就是走迷宫游戏的主体部分,获取玩家输入信息并作出相应移动;最后就是统计步数,结束游戏。

代码

走迷宫 游戏需要的头文件和宏定义

#include//万能头文件
#include//设置字体颜色
#include//_getch()函数
#define ge srand(static_cast(time(NULL)));//产生随机数种子

走迷宫 游戏数组和变量

int n/*长*/,m/*宽*/,u/*临时变量*/,sx/*起点x坐标*/,sy/*起点y坐标*/,ex/*终点x坐标*/,ey/*终点y坐标*/,cx/*当前位置x坐标*/,cy/*当前位置y坐标*/,stp/*当前步数*/;
int dx[]={0,-1,-1,-1,0,1,1,1,0}/*x方向*/,dy[]={0,-1,0,1,1,1,0,-1,-1}/*y方向*/;
bool b[11][11]/*标记搜索过*/,sg/*迷宫有解与否*/;
char a[11][11]/*迷宫*/,so,d;

crs(in

你可能感兴趣的:(c++,深度优先,游戏程序)