走迷宫C++小游戏

844. 走迷宫 + BFS 给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。 请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。 数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。 输入格式 第一行包含两个整数 n 和 m。 接下来 n 行,每行包含 m 个整数(0 或 1),表示完整的二维数组迷宫。 输出格 阅读详情

 

随机障碍物的迷宫,超级好玩

你将扮演一位名为「旅行者」($)的神秘角色,在自由的旅行中邂逅性格各异、能力独特的同伴们,和他们一起击败强敌,找回失散的亲人(☆)

#include<iostream>
#include<windows.h>//CursorInfo
#include<conio.h>
#include<ctime>
using namespace std;
const int N = 15;
int m[N][N], step, vis[N][N], startx, starty, endx, endy, mark;
int dx[] = { 1,-1,0,0 };
int dy[] = { 0,0,1,-1 };
void HideCursor()
{
	CONSOLE_CURSOR_INFO CursorInfo; // 定义光标信息的结构体变量
	CursorInfo.dwSize = 1;          // 赋值光标尺寸才能隐藏光标
	CursorInfo.bVisible = FALSE;    // 将光标设置为不可见
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); // 获取控制台标准输出设备的句柄
	SetConsoleCursorInfo(handle, &CursorInfo); // 设置控制台光标信息
}
void CursorJump(int x, int y)
{
	COORD pos;
	pos.X = x;
	pos.Y = y;
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(handle, pos);

}
void welcome()
{
	for (int i = 0; i < 10; i++)
	{
		cout << endl;
	}
	cout << R"(
		■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■    
		■                                                                 ■ 
		■                                                                 ■
		■                                                                 ■
		■                    在规定时间内走出迷宫                         ■
		■                    否则游戏失败                                 ■
		■                                                                 ■
		■                                                                 ■
		■                                                                 ■
		■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■  )";
	cout << "\n		";
	getch();
	system("cls");//清除控制台屏幕 
	for (int i = 0; i < 15; i++)
	{
		cout << endl;
	}
	cout << "                                 用a, w, s, d(英文)控制方向";
		getch();
	system("cls");
}
void Init()
{
	srand(time(0));
	for (int j = 0; j < N; j++)
	{
		m[0][j] = 1;
		m[N - 1][j] = 1;
	}
	for (int j = 0; j < N; j++)
	{
		m[j][0] = 1;
		m[j][N - 1] = 1;
	}
	for (int j = 0; j < (N - 5) * (N - 5); j++)
		m[rand() % (N - 2) + 1][rand() % (N - 2) + 1] = 1;
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
		{
			if (m[i][j] == 1)  cout << "■ ";
			else cout << "  ";
		}
		cout << endl;
	}
}
void dfs(int x, int y, int len)
{
	if (vis[x][y] == 1)return;
	else vis[x][y] = 1;
	if (len > step)
	{
		endx = x, endy = y;
		step = len;
	}
	for (int i = 0; i < 4; i++)
	{
		if (m[x + dx[i]][y + dy[i]] == 1)continue;
		else dfs(x + dx[i], y + dy[i], len + 1);
	}

}
void Pos() {
	int flag = 0;
	for (int i = 1; i < N - 1; i++)
	{
		for (int j = 1; j < N - 1; j++)
			if (m[i][j] == 0)
			{
				for (int k = 0; k < 4; i++)
				{
					if (m[i + dx[k]][j + dy[k]] == 0)
					{
						flag = 1;
						break;
					}
				}
				if (flag == 1)
				{
					startx = i;
					starty = j;
					break;
				}
			}
		if (flag == 1)break;
	}
	if (flag == 0)
	{
		Init();
		Pos();
		return;

	}
	else
	{
		dfs(startx, starty, 0);
		CursorJump(2 * endy, endx);
		cout << "☆ ";//空格保证不会被“\b ”覆盖

	}

}
void Play()
{
	char c;
	CursorJump(starty * 2, startx);
	cout << "$";
	while (1)
	{
		int x, y, flag = 0;
		c = getch();
			switch (c)
			{
			case 'w':
				x = startx - 1, y = starty;
				break;
			case 's':
				x = startx + 1, y = starty;
				break;
			case 'a':
				x = startx, y = starty - 1;
				break;
			case 'd':
				x = startx, y = starty + 1;
				break;
			default:
				flag = 1;
				break;
			}
		if (flag == 1 || m[x][y] == 1)
			continue;
		else {
			cout << "\b ";//+++space
			CursorJump(2 * y, x);

			startx = x, starty = y;
			cout << "$";
			if (x == endx && y == endy)
			{
				CursorJump(2 * N + 1, N + 1);
				cout << "You have winned 14.514% mankind.";
			}
		}
	}
}
int main()
{
	HideCursor();
	welcome();
	Init();
	Pos();
	Play();

}

用C++编写一个走迷宫游戏(1.0版) 嘿嘿,我又来啦!最近小编思考了很久,决定用C++写一个走迷宫游戏,写完之后,觉得还行,就来给大家讲解一下。 阅读详情

相关推荐

c++小游戏 走迷宫

c++小游戏 走迷宫 最近做了一个走迷宫,自我感觉不错。目前制作了10张地图,游玩前需先仔细阅读帮助,不然会无从下手哦!!!查看方法:运行程序,然后按h键。代码如下: #include<iostream> #include<windows.h> #include"GotoXY.h" #include <conio.h> #include <stdlib.h> #include <time.h> using namespace std; void h

S_JH330206的博客 9393

【走迷宫】c++

题目描述: NowCoder最喜欢游乐场的迷宫游戏,他和小伙伴们比赛谁先走出迷宫。 现在把迷宫的地图给你,你能帮他算出最快走出迷宫需要多少步吗? 输入描述: 输入包含多组数据。 每组数据包含一个10*10,由“#”和“.”组成的迷宫。其中“#”代表墙;“.”代表通路。 入口在第一行第二列;出口在最后一行第九列。 从任意一个“.”点都能一步走到上下左右四个方向的“.”点。 输出描述: 对应...

Willing_hope的博客 1629

用DEV-C++写一个走迷宫小游戏1.2最终版(完结,撒花)

刚刚写完了一篇博客,不久就得到了回应,还收获了一个粉丝,并且我的一个粉丝“[PE]经典八炮”给我发了个666,即使只有三个字,三个粉丝,我也很高兴!于是我决定趁热打铁,把我们的走迷宫小游戏1.2版本,也是最后一个版本给写完。当然,我明天还会写另一个小游戏的代码。.........

橙羊的博客 4401

百炼 3752:走迷宫

点击题目链接                   3752:走迷宫 查看提交统计提示提问 总时间限制: 1000ms 内存限制: 65536kB 描述 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。 给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走,不

在风雨中奔跑 2432

C++自作小游戏 走迷宫(源代码)

C++自作小游戏 走迷宫(源代码) 大家好,我做了一个走迷宫的c++的源代码,适合初学者,可以交流交流,学习学习 可以拿走,收藏哦! 目前只有一种地图,还会改进,多多关照 实际操作: 按W向上,按S向下,按A向左,按D向右 代码: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<windows.h> #include<conio.h> int main() { ch

Gardeniall的博客 3100

额,我要说一件重要的事+用C++编写一个走迷宫小游戏(1.1版)

看到标题大家应该也知道了,我今天要说一件事情,那就是我是一个小学生。我马上就要上初一了,最近我在网上冲浪的时候,发现了一个叫优快云的平台,我也正式成为了一个up主。可能刚开始写没有多少人会支持我,因为我才学c++两年多,可能有的地方有问题,但我会把我热爱编程的这份热情传递下去,即使没多少人支持我。这已经是我写的第4篇博客了,想想还是挺激动的。......

橙羊的博客 1015

自制C++小游戏走迷宫

直接上代码,有不足请指正。

ccw_china的博客 984

C++走迷宫小游戏代码

C++走迷宫小游戏代码

yaosichengalpha的博客 518

用 Dev-C++ 编写简单的走迷宫小游戏

本文介绍了使用Dev-C++编写控制台走迷宫小游戏的方法。基础版使用字符数组存储迷宫地图,#表示墙,O表示玩家,通过WASD键控制移动。优化版增加了欢迎界面、光标隐藏等功能,提升用户体验。两个版本都实现了基本的迷宫行走逻辑,当玩家到达终点时显示胜利信息。文章提供了完整代码和运行效果图,适合初学者学习简单的游戏开发。

林间寒水的博客 2万+

C++实现走迷宫算法(1)

1.题目要求       老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1表示老鼠行走的路径,试以程 式求出由入口至出口的路径。 2.实现思路       老鼠的走法有上,下,左,右四个方向,在每前进一格之后就选一个方向前进,无法前进时退回选择下一个可前 进方向,如此在阵列中依序测试四个方向,知道走到出口为至,这是返回的基本题,请直接看程式应就可以理解。 3.实现...

程序猿老樊的博客 8841

C/C++走迷宫小游戏(完整代码)

C/C++语言实现走迷宫小游戏的完整代码。

AIGC 1253

C++小游戏——走迷宫

大家想不想成名,那就一步步来吧,先写一些小游戏热热身。 下载地址 主程序代码:#include<conio.h> #include<stdlib.h> #include<time.h> #include<string.h> #include<windows.h> #include<iostream> using namespace std; char pr[10]={1,' ','E','O'}

hh_cnyali的博客 3万+

VC++迷宫游戏,支持随机生成迷宫地图

VC迷宫游戏,支持随机生成迷宫地图,用键盘上的方向键可控制红块在迷宫中走动,直到走出迷宫你就赢了。

C++实现《走迷宫》小游戏

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<windows.h> #include<conio.h> int main() { char a[50][50] = { "######", "#O # ", "# ## #", ...

YeLuoSiLiuNian的博客 2628

Drupal远程代码执行漏洞(CVE-2018-7600)实战复现:从检测到写入WebShell的全过程

本文详细解析了Drupal远程代码执行漏洞(CVE-2018-7600)的实战复现过程,从环境搭建、漏洞检测到WebShell写入的全流程。该高危漏洞影响Drupal 6.x至8.x版本,允许攻击者未经授权执行任意代码。文章提供了多种POC构造方法和高级利用技巧,帮助安全研究人员深入理解漏洞原理并掌握验证技术。

weixin_29322553的博客 275

使用 Restart Extension 继续解决 Ansys 机械分析

您正在执行复杂或大型的多步有限元分析,突然,您意识到经过数小时的求解后,您需要添加或修改边界条件。在本篇博文中,您将了解如何利用 Ansys Mechanical 中的 RestartAnalysis 扩展来扩展多步分析,方法是合并额外的时间步骤和边界条件,而不会丢失已计算的结果。幸运的是,在 Mechanical 中,有一种直接的方法可以实现这一点,而不会损害您之前的结果,而这在添加新边界条件和使用重新启动点时经常发生。得到的结果符合预期,您可以看到施加的力产生的这两个部分之间的相对位移。

jkh920184196的博客 1232

c++小游戏-走迷宫

众所周知 c++编程内容十分受限 但我给大家写了一点简单的小游戏 希望大家喜欢。这是一个c++的走迷宫小游戏。

backrooms_fandom的博客 555

链接文件及功能安全:英飞凌官方文档摘录 - 基于Tasking与AURIX TC3xx MCAL中Link文件解析以及代码变量定位方法详解

Data区域是用来存放带初始化值的全局变量,在link文件中,这个区域有两种类型,预先定义的区域和默认区域。预先定义的Data区域,例如.data.Ifx_Ssw_Tc1和.data.Cpu1_Main.*,在cpu1_main.c中如果定义了一个带初始化值的变量,则它会放在DSRAM1中的.data.Cpu1_Main.*段中。

梦想技术家 538

C++游戏编程--基于EasyX图形库--实现走迷宫小游戏

1、说明: 简易实现了走迷宫小游戏。 2、基本原理: (1)用二维数组构建地图 (2)初始化函数确定玩家坐标位置并绘制玩家 (3) 绘制函数根据二维数组的遍历不断更新玩家位置和判断是否到达终点 (4)更新函数通过键盘输入改变玩家位置不断把玩家坐标进行更新 (5)主函数利用死循环不断实现更新函数与绘制函数的执行 3、运行结果展示: 4、代码展示: #include<graphics....

有朋自远方来,不亦乐乎。 7302

使用 MATLAB/Simulink 构建一个基于FOC控制的PMSM矢量控制仿真模型

本教程详细介绍了基于Simulink的永磁同步电机(PMSM)磁场定向控制(FOC)仿真建模过程。主要内容包括:PMSM电机参数设置、Clarke/Park变换模块设计、电流环PID控制器构建、SVPWM调制实现等关键步骤。教程提供了完整的建模流程、参数配置建议和仿真调试方法,并给出了PID整定技巧和进阶优化方向。通过该模型,可深入理解PMSM矢量控制原理,掌握高性能电机控制系统的建模技术,为伺服系统、电动汽车驱动等应用领域提供仿真基础。教程还推荐了使用PIDTuner工具进行参数优化,并提出了加入负载扰动

amy_mhd的博客 643

QGIS之七建筑面由DSM和DEM获取高度并可视化

QGIS建筑面由DSM和DEM获取高度并可视化

yilvyangguang520的博客 3510

【兔年之兔子走迷宫】 用一个小游戏对回溯法进行实现 | C++

(兔年之兔子走迷宫)简单的来说,算法就是用计算机程序代码来实现数学思想的一种方法。学习算法就是为了了解它们在计算机中如何演算,以及在当今的信息时代,它们是如何在各个层面上影响我们的日常生活的,从而提高我们的逻辑思维能力和处理实际问题的能力。善用算法、巧用算法,是培养程序设计逻辑的重中之重,许多实际的问题都可用多个可行的算法来解决, 但是要从中找出最优的解决算法却是一项挑战。

PIONEER 1229

AutosarMCAL开发——基于TC367、EBTresos 开发之PORT

下图为开漏输出与推挽输出电路区别,推挽输出有两个极性相反的mos构成,一个管子导通另一个管子关闭以实现输出高低电平(电流较小不具备驱动能力),开漏输出仅使用一个MOS管,所以在这种模式下只能输出低电平,想要输出高电平需要外部提供(输入电流不可超过引脚最大电流显示否则会烧MCU)开漏输出:输出寄存器为低电平时,经过输出控制电路变成一个高电平,N-MOS导通,低电平从I/O引脚输出,输出寄存器为高电平时,P-MOS和N-MOS都是截止状态,电平无法通过,想要输出高电平需要外接上拉电阻。

qq_45583706的博客 1404

### C++走迷宫小游戏(自编)

———————————禁止转发,需要向作者申请,想玩的私信我———————————

Laolizi_Lzl的博客 163

SRS流媒体服务器在Windows下的安装

在之前的流媒体开发中(视频会议),我基本上使用nginx加模块的方式进行学习、测试,正式开发的时候改为服务器端用EasyDarwin,客户端用rtsp-simple-server(这些流媒体服务器的用法见我以前的博文),这样可以充分利用客户端的资源,降低服务器端的压力。在流媒体协议方案,我选择相对较快的rtsp。这个协议优点是支持UDP协议,优化好的环境下可以实现3秒以下的延迟,基本满足甲方要求,缺点就是不支持网页播放。

dgnankai的专栏 2023

leetcode134 加油站

题目如下 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。 说明: 如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输...

ayang818 's blog 233
上一篇: 字符串,字符数组,string输入输出scanf,gets,getchar
下一篇: 线段树模板
LETTER•
博客等级 码龄3年 62粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值