迷宫游戏

Coursera 学习记录:走出迷宫(二维数组的上下左右判断以及递归调用) 描述 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。 假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。 输入 第一行是两个整数n和m(1 <= n,m <= 100),表示迷宫的行数和列数。 接下来n行,每行一个长为m的字符串,表示整个迷宫的布局。字符’.’表示空地,’#’表示墙,’S’表示起点... 阅读详情

链接:https://www.nowcoder.com/acm/contest/93/D
来源:牛客网

题目描述
给你一个n*m的迷宫,这个迷宫中有以下几个标识:

s代表起点

t代表终点

x代表障碍物

.代表空地

现在你们涵哥想知道能不能从起点走到终点不碰到障碍物(只能上下左右进行移动,并且不能移动到已经移动过的点)。

输入描述:
输入第一行一个整数T(1<=T<=10)
接下来有T组测试数据,对于每一组测试数据,第一行输入2个数n和m(1<=n,m<=500)
接下来n行,每行m个字符代表这个迷宫,每个字符都是上面4个中的一种
数据保证只有一个起点和一个终点
输出描述:
对于每一组测试数据,如果可以的话输出YES,不可以的话输出NO

示例1
输入
1
3 5
s…x
x…x
…tx
输出
YES

#include<iostream>
#include<queue>
using namespace std;
#define MAX 510
int dis[MAX][MAX];
const int INF = 10000000;
typedef pair<int, int> P;

int dx[4] = { 1,0,-1,0 };
int dy[4] = { 0,-1,0,1 };

char map[MAX][MAX];


int main()
{
    int sx, sy;//start
    int gx, gy;//end
    int i,n, m,j;
    int T;
    cin >> T;
    queue<P> que;
    while (T--)
    {
        cin >> n >> m;
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < m; j++)
            {
                cin >> map[i][j];
                dis[i][j] = INF;
            }
        }
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < m; j++)
            {
                if (map[i][j] == 's')
                {
                    sx = i; sy = j;
                    break;
                }
                if (map[i][j] == 't')
                {
                    gx = i; gy = j;
                    break;
                }
            }
        }
        //cout << gx << gy << endl;
        que.push(P(sx, sy));
        while (que.size())
        {
            P p = que.front(); que.pop();
            if (p.first == gx && p.second == gy) break;
            for (i = 0; i < 4; i++)
            {
                int nx = p.first + dx[i], ny = p.second + dy[i];
                if (nx >= 0 && nx < m&&ny >= 0 && ny < m&&map[nx][ny] != 'x'&&dis[nx][ny] == INF)
                {
                    que.push(P(nx, ny));
                    dis[nx][ny] = dis[p.first][p.second] + 1;
                }
            }
        }
        if (dis[gx][gy] != INF)cout << "YES" << endl;
        else cout << "NO" << endl;
    }

    //stem("pause");



    return 0;
}
xjoi 1543 走迷宫 xjoi 1543 走迷宫 #include<bits/stdc++.h> using namespace std; int dx[4]={0,1,0,-1}; int dy[4]={1,0,-1,0}; int n,m,s=0; bool vis[10][10]; char a[10][10]; int dfs(int x,int y){ if(x==n&&y==m){ s++; } else{ for(int i=0 阅读详情

相关推荐

用Python编写迷宫游戏

文章目录1、 项目概述1.1 项目目标和主要内容1.2 项目的主要功能2、 项目设计2.1项目总体框架2.2 关键算法分析3、设计步骤3.1导入模块3.2定义颜色变量3.3定义游戏结束函数3.4定义主函数3.5执行主函数3.6将.py文件转为.exe文件4、运行结果 1、 项目概述 1.1 项目目标和主要内容 迷宫游戏是非常经典的游戏,在该项目要求随机生成一个迷宫,并求解迷宫 1.2 项目的主要功能 随机生成迷宫并求解 2、 项目设计 2.1项目总体框架 通过 Prim 算法随机创建迷宫

yuanfangyijun的博客 9586

逃离迷宫(奇偶性剪枝)

有一个n*m大小的迷宫。其中字符’表示’起点,字符‘D’表示出口,字符’X’表示墙壁。字符’.‘表示空地,从’S’出发走到’D’,每次只能向上下左右相邻的位置移动,并且不能 走出地图,也不能走进墙壁。 每次移动消耗1时间,走过的路都会塌陷,因此不能走回头路或者原地不动。现在已知出口的大门会在T时间打开,从起点能否逃离迷宫。 数据范围n,m<=10,T<=50。 分析:我们需要用dfs搜...

Anterior_condyle的博客 890

基于JAVA的简单迷宫游戏

迷宫游戏是非常经典的游戏,在该题中要求随机生成一个迷宫,并求解迷宫。基于Java的迷宫

cdh4119_的博客 4639

【算法】逃离迷宫(奇偶性剪枝)

我们记每个格子的行数和列数之和为x,如果x为偶数,那么格子就是白色,反之奇数时为黑色。容易发现相邻的两个格子的颜色肯定不一样,也就是说每走一步颜色都会不一样。更普遍的结论是:走奇数步会改变颜色,走偶数步颜色不变。其中字符'S'表示起点,字符'D'表示出口,字符'X'表示墙壁,字符'.'表示平地。那么如果起点和终点的颜色一样,而T是奇数的话,就不可能逃离迷宫。同理,如果起点和终点的颜色不一样,而T是偶数的话,也不能逃离迷宫。现在已知出口的大门会在T时间打开,判断在0时间从起点出发能否逃离迷宫。

weixin_73366312的博客 705

Python迷宫游戏

利用Python中的turtle库设计出一个由键盘控制的迷宫,并可利用深度优先遍历进行求解最优通关路径

chenchen5152的博客 5874

python做小游戏之一小迷宫游戏

使用pygame模块做一个简简单单,无比简陋,但是还能玩,且可以扩展地图的小迷宫游戏。

jackwsd的博客 5390

C++ 迷宫游戏

介绍 本程序是根据广度优先遍历算法的思想设计的一款迷宫游戏,游戏设计了两种模式一种自动游戏模式,一种手动模式。因为项目在 Linux 开发,需要在 Windows 开发的,请查看源代码中需要修改地方的备注。 代码 #include &amp;amp;lt;iostream&amp;amp;gt; #include &amp;amp;lt;cstdlib&amp;amp;gt; //标准库 #include &amp;amp;lt;unistd.h&amp;

麦迪儿的博客 1万+

C++打造迷宫游戏,直接上代码

C++ 迷宫游戏实现代码 题目: 通过让游戏角色自动寻找迷宫出口,走出迷宫,来练习C++面向对象之封装的基础知识。迷宫图如下所示,其中X表示墙。 1、程序分析 走出去的原理:遵循右手规则或左手规则。右手扶墙走,就会走出迷宫,反之,亦然。 step1 创建迷宫类,打印出迷宫地图。 step2 创建走迷宫的人的类。 2、程序实现 MazeMap.h #...

wyh15895833492的博客 4562

【c语言】迷宫游戏

迷宫游戏

yyqzjw的博客 3447

迷宫游戏设计

迷宫游戏开

m0_64456221的博客 1827

【C++ 程序】 移动迷宫游戏

这个移动迷宫(Running Maze)程序为两玩家竞技项目。目标为到达出口。 // This is a Running Maze game program.

Teddy van Jerry的博客 3482

基于java的迷宫游戏

文章目录前言一,生成迷宫二,设置键盘响应及操作对象的移动三,A*算法走迷宫四,绘制迷宫结果图 前言 这个程序需要学习prime算法,A*算法。 一,生成迷宫 迷宫是一个布尔型二维数组mg,true代表有路,false代表有墙,并且我用的是prime算法生成,代码如下 //20x20的迷宫,false为有墙, boolean mg[][]=new boolean[20][20]; //随机创造迷宫 public boolean[][] createmg(boolean arr[][]){ //数组开

m0_50687157的博客 3370

基于Java的迷宫小游戏

基于Java的迷宫小游戏算法与分析

m0_73565130的博客 1990

迷宫小游戏

想法:设计一个迷宫,走出迷宫,获得奖励。 思路: 1.首先要有个游戏开始界面,主要就是显示一些东西。 printf("\n\t\t\t"); for(int i = 0;i &lt; 20;i ++){ printf("-"); //输出界面上界 } printf("\n"); printf("The * is the symbol...

Wonz 2073

HTML 迷宫游戏

迷宫游戏一个网页操作类小游戏,操作方法也很简单,用键盘的方向键控制即可(所以手机不能玩),如果你觉得太简单,可以随时调整迷宫的宽和高,增加迷宫的难度,刷新网页后迷宫还原。也可用于网站的404报错页面,打发无聊的休闲时间。

白泽的博客 3530

迷宫问题:m×n长方阵表示迷宫

问题描述: 以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴ 实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵ 编写递归形式的算法,求得迷宫中所有可能的通路; ⑶ 以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口 实现提示: 计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。可以二维数组存储迷宫数据,通常设定入口点的下标为(1,1),出口点的下标为(m,n)。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。

Qt简单迷宫游戏

这是一篇关于如何做Qt简单迷宫游戏的博客

qq_69383179的博客 1330

如何解决ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE.

解决ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE

2742

迷宫求解--迷宫游戏课程设计

总结1. 实现的功能1.将迷宫通过可视化方法直观的显示出来,直观的显示路和墙的位置2.随机生成迷宫, 采用Prime算法生成随机迷宫,保证了迷宫的随机性3.玩家可以通过键盘上的方向键控制位置,直到走到终点4.DFS寻找答案, 当玩家无法不知道从哪走的时候可以通过DFS寻找路径5.BFS寻找答案, 当玩家无法不知道从哪走的时候也可以通过BFS寻找路径6.延时函数,直观的显示BFS和DFS的遍历过程7.清空答案,重新游玩2.遇到的问题1. Prime算法生成迷宫2. 迷宫可视化操作,不知道如何将图数组转化成可视

JdiLfc的博客 3049

电感选型不当的代价:从纹波激增到系统失稳的深度剖析

本文深度剖析了电感选型不当对开关电源系统的严重影响。电感值过小会导致纹波电流激增、元件热应力加剧、EMI超标乃至MOSFET击穿;电感值过大则会引起环路响应迟滞、动态性能下降和轻载效率恶化。文章通过实测案例,强调了超越经典公式进行动态与容差考量的必要性,并提供了基于饱和电流、温升电流及环路测试的精准选型方法论,帮助工程师规避从纹波失控到系统失稳的潜在风险。

flink9streamer的博客 406

「模型部署系列」ubuntu 使用vllm部署Qwen3-8B模型

解决这个问题的方法正如错误信息中所提示的,需要在命令行中显式地设置。下载单个文件到指定本地文件夹(以下载README.md到当前路径下“dir”目录为例)解决:这表明你正在使用的 Tesla T4 GPU 的计算能力为 7.5,而。,用于获取更详细的 NCCL 调试信息,当所有其他问题排除,可尝试增加。1、下载vllm v0.8.5(此处已经下好了,去仓库拉资源)在下载前,请先通过如下命令安装ModelScope。,这一错误最终致使引擎进程启动失败。更多更丰富的命令行下载选项,可参见。

汪依帆的博客 5044
上一篇: POJ3126 Prime Path
下一篇: n的阶乘末尾0的个数
玄蛰
博客等级 码龄9年 89粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值