{ paint(x,y); x--; } break;
case Down: //向下走 if(map[x+1][y]!=Wall) { paint(x,y); x++; } break;
case Left: //向左走 if(map[x][y-1]!=Wall) { paint(x,y); y--; } break;
case Right: //向右走 if(map[x][y+1]!=Wall) {
paint(x,y); y++; } break; } } } int main() { int i,j;
srand((unsigned)time(NULL)); //初始化随即种子 hidden(); //隐藏光标 for(i=0;i<=Height+1;i++) for(j=0;j<=Width+1;j++)
if(i==0||i==Height+1||j==0||j==Width+1) //初始化迷宫 map[i][j]=Road; else map[i][j]=Wall;
create(2*(rand()%(Height/2)+1),2*(rand()%(Width/2)+1)); //从随机一个点开始生成迷宫,该点行列都为偶数 for(i=0;i<=Height+1;i++) //边界处理 {
map[i][0]=Wall; map[i][Width+1]=Wall; }
for(j=0;j<=Width+1;j++) //边界处理 {
map[0][j]=Wall; map[Height+1][j]=Wall; }
map[2][1]=Start; //给定入口 map[Height-1][Width]=End; //给定出
口 for(i=1;i<=Height;i++)
for(j=1;j<=Width;j++) //画出迷宫 paint(i,j);
game(); //开始游戏 getch(); return 0; }
首先,先挂上代码。然后说部分废话,读代码好处非常之多,提高技术,增加理解力,以及获得不同思路等。读代码甚至对比写代码来说,学习效率有过之而无不及.文章针对初级又在初级之上,没有一定的基础看不懂,有一定的基础就可以跟着这篇帖子,做出你自己的C语言随机迷宫,这里的做出并不是抄代码,而是变为你真正的知识,在没有参考的时候,也可以流畅的写出你的代码.
然后我们开始分析代码.. 先看头文件。
#include <stdio.h> //包涵标准输入输出函数
#include <conio.h> //控制台输入输出库,非标准库哦
#include <windows.h> //WINDOWS.H是主要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。 具体包涵了什么。。太多了 自行百度
#include <time.h> //包涵时间和日期处理函数
#define Height 21 //迷宫的高度,必须为奇数
#define Width 21 //迷宫的宽度,必须为奇数
#define Wall 1 //即字面意思 墙 #define Road 0 //即字面意思 路 #define Start 2 //入口 #define End 3 //终点 #define Esc 5 //退出
#define Up 1 //上,下,左,右 #define Down 2 #define Left 3 #define Right 4
这里为什么要用宏,什么情况下使用宏,可能要问为什么不直接用 12345来代替。简单的来说就是提供一个方便,并增加一定的效率。还有重要的一点就是增加代码的可读性。尽量避免用01234这样无意义的数字而使用宏定义能良好的提高开发效率,在小程序中可能不算什么,但是在大程序可就不一样了,然而宏定义也并非只能定义简单的1234 。
接下来我们看一共有几个函数
void gotoxy(int x,int y) //既字面含义 移动坐标 void create(int x,int y) //字面含义 创建迷宫
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库迷宫c语言(2)在线全文阅读。
相关推荐: