bfs在三维空间的扩展,仔细一点问题不大。
#include<stdio.h> #include<string.h> typedef struct Point { int x; int y; int z; int len; } Point; typedef Point* Ptr; char dungeon[40][40][40]; int l, r, c; int dir[6][3] = { { 1, 0, 0 }, { -1, 0, 0 }, { 0, 1, 0 }, { 0, -1, 0 }, { 0, 0, 1 }, { 0, 0, -1 } }; Point start; Point end; Point queue[100000]; int length; int bfs() { int front = 0; int rear = 1; queue[0].x = start.x; queue[0].y = start.y; queue[0].z = start.z; queue[0].len = start.len; dungeon[start.x][start.y][start.z] = '#'; int i, newX, newY, newZ; while (front < rear) { Ptr p = &queue[front++]; for (i = 0; i < 6; i++) { newX = p->x + dir[i][0]; newY = p->y + dir[i][1]; newZ = p->z + dir[i][2]; if (newX >= 0 && newX < l && newY >= 0 && newY < r && newZ >= 0 && newZ < c && dungeon[newX][newY][newZ] != '#') { if (newX == end.x && newY == end.y && newZ == end.z) { return p->len + 1; } queue[rear].x = newX; queue[rear].y = newY; queue[rear].z = newZ; queue[rear].len = p->len + 1; dungeon[newX][newY][newZ] = '#'; rear++; } } } return -1; } int main() { while (scanf("%d%d%d", &l, &r, &c) != EOF) { if (l == 0) break; length = -1; memset(dungeon, 0, sizeof(dungeon)); getchar(); int i, j, k; for (i = 0; i < l; i++) { for (j = 0; j < r; j++) { for (k = 0; k < c; k++) { scanf("%c", &dungeon[i][j][k]); if (dungeon[i][j][k] == 'S') { start.x = i; start.y = j; start.z = k; start.len = 0; } else if (dungeon[i][j][k] == 'E') { end.x = i; end.y = j; end.z = k; end.len = -1; } } getchar(); } getchar(); } length = bfs(); if (length >= 0) printf("Escaped in %d minute(s).\n", length); else printf("Trapped!\n"); } return 0; }
相关推荐
《UVA532 Dungeon Master:解密游戏编程的深度探索》 在计算机科学与编程领域,UVA(University of Virginia)在线判题系统是一个深受程序员喜爱的平台,它提供了丰富的算法题目供学习者挑战。其中,编号为532的...
【标题】"POJ2251-Dungeon Master" 是一个来自北京大学在线判题系统POJ(Problem Set)的编程题目。这个题目属于算法竞赛的一部分,挑战者需要编写程序来解决特定的问题,以提高自己的编程能力和算法理解。 【描述...
2D Hand Painted - Dungeon Tileset v1.2,2D Hand Painted - Dungeon Tileset v1.2,2D Hand Painted - Dungeon Tileset v1.2,
从【压缩包子文件的文件名称列表】来看,只有一个名为`go-dungeon-master`的目录,这很可能是项目的源代码仓库。通常,开源项目会包含以下几部分: 1. `README.md`:项目介绍和使用指南,包括安装、配置和运行的...
适用于平台游戏的32x32地牢道具和瓷砖。 特征 309个地牢道具。 1个地牢地面瓷砖。 1个地牢墙瓷砖纹理。 带有打开和关闭动画的箱子、门和开关。...在导入此包之前,请确保它已正确安装在您的项目中。...
3D-pixel-dungeon-3d.zip,三维模型为像素地牢流氓角色扮演,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及其他应用程序。
2017 勇者无敌 - Dungeon Breaker Starter Kit 3.0f.zip项目unity源码下载2017 勇者无敌 - Dungeon Breaker Starter Kit 3.0f.zip项目unity源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3.适合公司开发...
《2017 勇者无敌 - Dungeon Breaker Starter Kit 3.0f》是一款基于Unity引擎的游戏开发套件,专为初学者和开发者设计,帮助他们快速构建地下城冒险类游戏。这个套件提供了丰富的游戏元素和工具,使得创建具有深度和...
《地牢破坏者001-Dungeon Breaker Starter Kit beta3》是一款基于Unity引擎开发的游戏启动包,主要用于帮助开发者和游戏爱好者快速构建自己的地牢探险类游戏。Unity是一款广泛使用的跨平台游戏开发工具,以其强大的...
"Pokemon-Mystery-Dungeon-Password-Sharer-master"这个压缩包文件名暗示了这是项目的主分支源代码。对于熟悉编程的玩家或开发者来说,可以深入了解工具的工作原理,甚至进行二次开发,添加更多实用功能。例如,可能...
"js-dungeon-scare-v2-master"这一文件名暗示了项目可能使用Git进行版本管理,这对于团队协作和代码历史追踪至关重要。 总的来说,"js-dungeon-scare-v2"项目是一个综合性的JavaScript学习平台,涵盖了从基本语法到...
《Rogue-Like-Dungeon-Crawler》是一款深受玩家喜爱的游戏类型,它融合了Roguelike元素和地牢探索玩法,通常包含随机生成的地图、永久死亡机制、回合制战斗以及丰富的角色成长系统。这种游戏模式提供了无尽的重玩...
Dicebot / Spellbot for Slack 完全基于上的Taylor Brennan的指南15/9/3-添加了对XdY + Z的常数加法的支持15年9月9日-添加了对负常量(也称为XdY-Z)的支持15年9月10日-创建了Spellbot,增加了对列出角色咒语和单个...
cd discordjs-d20-dungeon 安装所有软件包。 npm install 复制.env.example文件,并将其重命名为.env 。 打开文件,并使用discord bot的令牌更改TOKEN变量。 您可以在找到/制作您的机器人。 然后使用 npm start ...
《地牢破坏者001 Dungeon Breaker Starter Kit beta3 Unity游戏项目源码》 本压缩包提供的是一款基于Unity引擎开发的游戏项目源码——“地牢破坏者001”。Unity是一个广泛应用于游戏开发的跨平台游戏引擎,以其强大...
哥布林像素地牢大师 哥布林像素地牢 这是旧的预分级版本。 可以在以下存储库中找到新的存储库: : “哥布林像素地牢”。 它是基于David Mitchell的Unleashed PD进行的狂热修改,其中包含了Tarol Hunt-Stephens 艺术...
在压缩包文件"RPD-The-Epic-Dungeon-master"中,我们可以期待找到以下关键组成部分: 1. **源代码**:项目的核心部分,包含用Lua编写的脚本文件,这些文件定义了游戏的逻辑、规则和事件响应。可能包括主角行为、...
Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity...
Leetcode经典01背包UVA Problem This repository ...Dungeon Master -> BFS类型的题目 299 - Train Swapping 10038 - Jolly Jumpers 10193 - All You Need Is Love -> 简单题,主要考察最大公约数问题g
史诗级的低多边形资源包,包含角色、道具、武器和环境元素,用于创建一个幻想主题的多边形风格游戏。 模块化的部分易于以多种组合方式拼接。 核心特点 完全模块化的地下城! 包含一个超大型演示场景 ...