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

本文介绍了使用Dev-C++编写走迷宫游戏的过程,包括游戏的创作背景、玩法说明和核心思路。游戏玩法是通过键盘控制移动避开障碍,到达终点。在生成迷宫时运用了dfs深搜算法确保有解,并详细阐述了各个函数的作用,如边界判断、合法性检查和迷宫状态输出。最后提到游戏逻辑的严谨性和dfs深搜的时间复杂度优化问题。
摘要由CSDN通过智能技术生成

创作背景

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

熟悉的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<bits/stdc++.h>//万能头文件
#include<windows.h>//设置字体颜色
#include<conio.h>//_getch()函数
#define ge srand(static_cast<int>(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

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值