岩浆地牢

2023-12-02 04:48
文章标签 地牢 岩浆

本文主要是介绍岩浆地牢,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

两个人在地牢中移动,问他们相遇的最少步数。一个人移动时另一个人也会移动,不能移动到岩浆上,碰到岩石则不动。

广度优先搜索。

#include<cstdio>
#include<string.h>
const int dir[4][2]={-1,0,1,0,0,-1,0,1};
int n,m,ans;
struct point
{int x,y;
};point paris,helen;
point queue[160000][2];
int step[20][20][20][20];
int map[20][20],mv[4];void init()
{scanf("%d%d\n",&n,&m);memset(map,0,sizeof(map));char st[100];int i,j;for(int i=0;i<n;i++){gets(st);for(j=0;j<strlen(st);j++)if(st[j]=='#')map[i][j]=1;else if(st[j]=='!')map[i][j]=2;else if(st[j]=='P'){paris.x=i;paris.y=j;}else if(st[j]=='H'){helen.x=i;helen.y=j;}}gets(st);for(i=0;i<4;i++)switch(st[i]){case 'N':mv[i]=0;break;case 'S':mv[i]=1;break;case 'W':mv[i]=2;break;case 'E':mv[i]=3;}}int bfs_search(){if(paris.x==helen.x&&paris.y==helen.y)return 0;int head,tail,now,i,xp,yp,xh,yh;memset(step,0xff,sizeof(step));queue[0][0].x=paris.x;queue[0][0].y=paris.y;queue[0][1].x=helen.x;queue[0][1].y=helen.y;step[paris.x][paris.y][helen.x][helen.y]=0;head=-1;tail=0;while(head++<tail){now=step[queue[head][0].x][queue[head][0].y][queue[head][1].x][queue[head][1].y];if(now==255)return -1;for(i=0;i<4;i++){xp=queue[head][0].x+dir[i][0];yp=queue[head][0].y+dir[i][1];xh=queue[head][1].x+dir[mv[i]][0];yh=queue[head][1].y+dir[mv[i]][1];if(xp>=n||xp<0 || yp>=m || yp<0 || xh>=n ||xh<0||yh>=m||yh<0)continue;if(map[xp][yp]>=1||map[xh][yh]==2)continue;if(map[xh][yh]){xh=queue[head][1].x;yh=queue[head][1].y;}if(step[xp][yp][xh][yh]==-1){tail++;queue[tail][0].x=xp;queue[tail][0].y=yp;queue[tail][1].x=xh;queue[tail][1].y=yh;step[xp][yp][xh][yh]=now+1;if(xp==xh&&yp==yh)return now+1;if(xp==queue[head][1].x&&yp==queue[head][1].y&&xh==queue[head][0].x&&yh==queue[head][0].y)return now+1;}}}return -1;}int main(){init();ans=bfs_search();if(ans>=0)printf("%d\n",ans);else printf("Impossible\n");return 0;}


这篇关于岩浆地牢的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/444001

相关文章

试一试Tyrant地牢生成算法

话题 我看到一篇文章讲了一种 Roguelike 地牢生成算法:一种 Roguelike 地牢生成算法 | indienova 独立游戏。这篇文章是翻译,原作者是一款名叫“Tyrant”游戏的作者,在讲自己制作这款游戏时用的地牢生成算法。可我没找到这款游戏的发行版,源代码倒是有:Tyrant - Java Roguelike download | SourceForge.net。可惜是Java工

破碎的像素地牢探险:游戏分享

软件介绍 《破碎的像素地牢》是开源一款地牢冒险探索类的游戏,融合了日系RPG经典风格,玩家将控制主角进行未知场景的探索。除了经典地牢玩法外,游戏还添加了更多创意内容,如黑屏状态前的挑战性等,使得游戏更加富有挑战性。玩家可以选择不同职业的角色,如战士、法师、盗贼等,在地下城展开冒险之旅。 使用方法 《破碎的像素地牢》具有高度的复玩性,每局随机生成楼层、敌人和道具,带来全新的游戏体验。游戏中

【算法设计与分析】六、动态规划:(二)上机-1、地牢逃生【理论到程序】

文章目录 一、题目1、问题2、输入输出要求3、样例说明4、数据范围 二、思路1、GPT4 - fail算法解释C++ 实现 2、Claude3 - fail问题分析算法实现 3、个人拙见 - succeed 三、代码实现 一、题目 1、问题   用一个 n×n 的矩阵表示一座地牢,矩阵中第 i 行第 j 列的方格的值表示位置 (i,j) 的地势高度 h(i,j)。   时间 T

00002 贪婪洞窟.003.4:地牢生成

 00002 贪婪洞窟.003.4:地牢生成        每层地牢由程序根据一定的规则随机生成。生成选项包括:地图大小、普通怪物数量、精英怪物数量、符文数量、密室、箱子、点金、附魔等等。 地图大小、怪物、箱子          地牢的主要生成规则在level_1.plist、level_2.plist、level_3.plist中定义,它们分别对应普通难度、噩梦难

ML-Agents案例之地牢逃脱

本案例源自ML-Agents官方的示例,Github地址:https://github.com/Unity-Technologies/ml-agents,本文是详细的配套讲解。 本文基于我前面发的两篇文章,需要对ML-Agents有一定的了解,详情请见:Unity强化学习之ML-Agents的使用、ML-Agents命令及配置大全。 我前面的相关文章有: ML-Agents案例之Crawle

[IOI2021]地牢游戏

地牢游戏 题解 首先,我们根据 s u b t a s k   3 , 4 subtask\,3,4 subtask3,4,应该很容易想到一种倍增的做法去解决我们的问题。 对于这几个图,我们的分层是相当少的,所以我们可以将我们整个过程分成至多 6 6 6个阶段,对于每个阶段单独倍增直到超越这个阶段,或者说抵达我们的终点。 我们考虑将我们的倍增做法延伸到我们的正解上,显然,由于当我们胜利后会

深蓝学院C++ Project 4 文字版挂机地牢探险游戏的设计 代码

写在前面 调试了周末的半天,算是夯实c++基础与深度解析类的实战,对virtual函数等都有了更好的理解 本机环境visual studio2019  如下图   项目一共有两个文件 下面是代码详情,方便大家参考,毕竟我做的时候找了好久也没找打这个项目的完全版本,算是帮大家加深理解,这个项目可能有一些小bug还没细致排查,至少目前没发现,后续再深入改造。代码如下

codecombat极客战记地牢红色关通关代码

本游戏全程使用python语言,对初学者有一定帮助 地牢一 代码 # 向宝石进发。# 小心尖刺!# 在下面输入你的代码,完成后点击运行。hero.moveRight()hero.moveDown()hero.moveRight() 深藏的宝石 # 利用你的移动命令收集所有宝石。hero.moveRight()hero.moveDown()hero.moveUp(2

1096. 地牢大师(蓝桥杯/bfs宽搜求最小距离)

题目: 1096. 地牢大师 - AcWing题库   输入样例: 3 4 5S.....###..##..###.#############.####...###########.#######E1 3 3S###E####0 0 0 输出样例: Escaped in 11 minute(s).Trapped! 思路:bfs(三维) 代码:

基于Unity3D的集冒险RPG为一体的3D地牢探险游戏(猪猪公寓)

目录 1.概述 3 1.1项目简介 3 1.2本文结构 3 1.3团队的成员及分工 3 1.4游戏类型与同类型游戏比较 4 1.5游戏分级 4 2.游戏故事 4 2.1游戏故事设定 4 2.2游戏故事梗概 5 3.游戏元素设定 8 3.1游戏角色NPC设定 8 3.2游戏物体及机关 8 4.玩法设计 9 4.1游戏机制 9 4.2游戏世界行为规则 9 5.游戏交互设计(用户手册) 10 5.1操作