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的源代码,并且AC了
北大POJ2251-Dungeon Master 解题报告+AC代码
2D Hand Painted - Dungeon Tileset v1.2,2D Hand Painted - Dungeon Tileset v1.2,2D Hand Painted - Dungeon Tileset v1.2,
开源项目-Meshiest-go-dungeon.zip,我在围棋里做的一个简单的地牢发电机
3D-pixel-dungeon-3d.zip,三维模型为像素地牢流氓角色扮演,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及其他应用程序。
2017 勇者无敌 - Dungeon Breaker Starter Kit 3.0f
2017 勇者无敌 - Dungeon Breaker Starter Kit 3.0f.zip项目unity源码下载2017 勇者无敌 - Dungeon Breaker Starter Kit 3.0f.zip项目unity源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3.适合公司开发...
地牢破坏者001-Dungeon+Breaker+Starter+Kit+beta3.zip
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 ...
哥布林像素地牢大师 哥布林像素地牢 这是旧的预分级版本。 可以在以下存储库中找到新的存储库: : “哥布林像素地牢”。 它是基于David Mitchell的Unleashed PD进行的狂热修改,其中包含了Tarol Hunt-Stephens 艺术...
Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity插件源码Unity...
Rogue-Like-Dungeon-Crawler
RPD-The-Epic-Dungeon
Leetcode经典01背包UVA Problem This repository ...Dungeon Master -> BFS类型的题目 299 - Train Swapping 10038 - Jolly Jumpers 10193 - All You Need Is Love -> 简单题,主要考察最大公约数问题g
源码参考 欢迎下载
破碎的像素地牢 类似于Rogue的RPG,具有随机生成的关卡,物品,敌人和陷阱! 基于的。 目前,《破碎的像素地牢》适用于Android和桌面平台。 它可以从 , , 和。 如果您喜欢这个游戏,请考虑!...
Shattered Pixel Dungeon A Roguelike RPG, with randomly generated levels, items, enemies, and traps! Based on the source code of Pixel Dungeon, by Watabou. Shattered Pixel Dungeon uses gradle and is ...
像素地牢:重生 这是@watabou 的 libgdx 端口 具有像素艺术图形和简单界面的传统 roguelike 游戏。 GooglePlay 上的像素地牢: : ... 官方网站: : 开发者博客: : 要构建原创游戏,您将需要他的未命名游戏库: :
cd markdown-dungeon 运行安装依赖 yarn 在项目根目录下创建一个.env.development文件,复制.env.example文件的格式。 要启动开发服务器,请运行: yarn start 确保您没有使用 Power shell :party_popper: ...