⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 “迷宫探险”游戏设计说明(5).txt

📁 迷宫探险算法
💻 TXT
字号:

                   “迷宫探险”游戏设计详细说明(5)

     __________________________________________________
     |                                                |__☆★
     |            上海财经大学图书馆  陈畅            | |_
     |          http://shchenchang.top263.net         | ||
     |    编程软件,我的原创作品(含源码和详细说明)    | ||
     |           mail:shufechenchang@263.net          | ||
     |_______QQ:7019717(欢迎编程爱好者加我为好友)_____| ||
       |________________________________________________||
     ☆☆|_______________________________________________|




关于“迷宫探险”程序的一些问题:
******************************************************

Turbo C 中怎样设置图形显示?
Turbo C 中常用图形函数的用法?
怎样获取鍵盘输入?
迷宫的数据表示法?
怎样随机生成一个从入口至出口只有唯一通路的迷宫?
你是怎样知道生成的迷宫从入口至出口肯定只有唯一通路的?
入口和出口必须在左上角和右下角吗?
迷宫通路的数据表示法?
怎样才能找到从入口到出口的那条唯一通路?
对我程序的注解。

******************************************************


■对我程序的注解(二)

☆主函数很短,我就把它贴在下边,来个全解吧。
int main(void)
{
	/* mazewidth和mazeheight为新迷宫的宽度和高度 */
	/* success标记玩家是否到达迷宫终点 */
	int mazewidth=8,mazeheight=6,success=0;
	
	/* oldw和oldh表示迷宫原有的大小 */
	int oldw,oldh;

	/* 随机初始化 */
	randomize();

	/* trace记录玩家在迷宫中走过的路线 */
	TwoDimensionArray trace(mazewidth,mazeheight);

	/* cur记录玩家在迷宫中的位置 */
	Point cur(0,0);

	/* 新建一个迷宫 */
	Maze m(mazewidth,mazeheight);

	int i,j,key;

	/* 设置玩家在迷宫的左上角(起点) */
	trace.Set(0,0,1);
	
	/* 绘制界面 */
	Draw();

	/* 绘制迷宫 */
	DrawMaze(m);

	/* 绘制迷宫的宽高 */
	DrawSize(m.GetWidth(),m.GetHeight());

	for(;;)
	{
		oldw=mazewidth;        /* 记录迷宫原来的宽度 */
		oldh=mazeheight;       /* 记录迷宫原来的高度 */
		while (bioskey(1)==0); /* 等待按键 */
		key=bioskey(0);        /* 获取按键 */
		switch(key)
		{
		case ESC:              /* Escape 键退出游戏 */
			goto exit;
		case F1:               /* F1 显示迷宫路线 */
			DrawPath(m);
			break;
		case F2:               /* F2 键按当前宽、高生成新迷宫 */
			m.SetSize(mazewidth,mazeheight);
		case F3:               /* F3 键绘制迷宫 */
			DrawMaze(m);

			 /* 玩家走过的路线归位 */
			trace.SetSize(mazewidth,mazeheight);

			/* 玩家回到迷宫左上角(起点) */
			trace.Set(0,0,1); 

			/* 玩家位置回到迷宫左上角(起点) */
			cur.x=0;
			cur.y=0;

			/* 标记玩家没有到达迷宫终点 */
			success=0;
			break;
		case HOME:             /* HOME 键迷宫宽度减1 */
			if (mazewidth>2) mazewidth--;
			break;
		case END:              /* HOME 键迷宫宽度加1 */
			if (mazewidth<MAZE_MAX_WIDTH) mazewidth++;
			break;
		case PAGEUP:           /* PAGEUP 键迷宫高度减1 */
			if (mazeheight>2) mazeheight--;
			break;
		case PGDOWN:           /* PAGEDOWN 键迷宫高度加1 */
			if (mazeheight<MAZE_MAX_HEIGHT) mazeheight++;
			break;
		case LEFTKEY:          /* 玩家在迷宫中向左走一步 */
			if (!success)
				success=TraceMaze(trace,cur,m,west);
			break;
		case UPKEY:            /* 玩家在迷宫中向上走一步 */
			if (!success)
				success=TraceMaze(trace,cur,m,north);
			break;
		case RIGHTKEY:         /* 玩家在迷宫中向右走一步 */
			if (!success)
				success=TraceMaze(trace,cur,m,east);
			break;
		case DOWNKEY:          /* 玩家在迷宫中向下走一步 */
			if (!success)
				success=TraceMaze(trace,cur,m,south);
			break;
		}

		/* 如果迷宫大小被改变,重绘迷宫大小 */
		if (oldw!=mazewidth||oldh!=mazeheight)
			DrawSize(mazewidth,mazeheight);
	}
	exit:

	return 0;
}



<未完>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -