Ts 简单随机迷宫迷宫地图

article/2025/3/11 9:17:03

直接上代码

//随机地图const { ccclass, property } = cc._decorator;@ccclass
export default class NewClass extends cc.Component {@property(cc.Node)mapItem: cc.Node = null;@property(cc.Node)mapContent: cc.Node = null;private mapArr: any = [];onLoad() {}start() {}ranstatr() {let mapData = this.creatMap(10, 10);this.brushMap(mapData);}rand(min: number, max: number) {let num = Math.random() * (max + 1 - min) + min;num = parseInt(num.toString());return num}creatMap(r: number, c: number) {this.mapArr = [];let notAccessed = [];let accessed = [];for (let i = 0; i < r * 2 + 1; ++i) {let arr = [];for (let n = 0; n < c * 2 + 1; ++n) {if ((n ^ (n - 1)) == 1 && (i ^ (i - 1)) == 1) {arr.push(0);                   // 0 表示路notAccessed.push(0);}else {arr.push(1);                  // 1 表示墙}}this.mapArr.push(arr);}let count = r * c;let cur = this.rand(0, count);let offs = [-c, c, -1, 1];         // 四周顶点在notAccessed的偏移量let offr = [-1, 1, 0, 0];                        // 四周顶点在arr的纵向偏移量let offc = [0, 0, -1, 1];                        // 四周顶点在arr的横向偏移量accessed.push(cur);notAccessed[cur] = 1;while (accessed.length < count) {let tr = parseInt((cur / c).toString());let tc = parseInt((cur % c).toString());let num = 0;let off = -1;// 遍历上下左右顶点while (++num < 5) {let around = this.rand(0, 4),nr = tr + offr[around],nc = tc + offc[around];if (nr >= 0 && nc >= 0 && nr < r && nc < c && notAccessed[cur + offs[around]] == 0) {off = around;break;}}// 四周顶点均被访问,则从已访问的顶点中随机抽取一个为curif (off < 0) {cur = accessed[this.rand(0, accessed.length)];}else {tr = 2 * tr + 1;tc = 2 * tc + 1;this.mapArr[tr + offr[off]][tc + offc[off]] = 0;cur = cur + offs[off];notAccessed[cur] = 1;accessed.push(cur);// cc.log(accessed.length)}}return this.mapArr;}brushMap(map) {for (let i = 0; i < 21; i++) {for (let n = 0; n < 21; n++) {let node = this.instantiateMap(i, n);if (map[i][n] == 1) {var color1 = new cc.Color(255, 0, 0, 255);node.color = color1;}}}}instantiateMap(i, n) {let node = cc.instantiate(this.mapItem);node.parent = this.mapContent;node.setPosition(new cc.Vec2(i * 10, n * 10));return node;}
}

效果图


http://chatgpt.dhexx.cn/article/YGfSh4RZ.shtml

相关文章

C++游戏编程--实现鼠标编辑迷宫地图界面

鼠标左键放砖&#xff0c;右键取消。 void Change() {Show();while (true) {ExMessage m;//定义一个消息变量m getmessage(EM_MOUSE);//获取鼠标消息switch (m.message){case WM_MOUSEMOVE:// 鼠标移动的时候画红色的小点putpixel(m.x, m.y, RED);break;case WM_LBUTTONDOWN:/…

台州oj 5061 迷宫地图

5061: 迷宫地图 时间限制(普通/Java):1000MS/3000MS 内存限制:65536KByte 总提交: 114 测试通过:28 描述 在一些迷宫游戏中,往往有多个关卡,每个关卡有不同的地图,地图往往是由n行m列的方格组成,每个格子上可能是通道、墙壁、道具、玩家等。在设计时,…

关于矩形迷宫地图的数组化处理和相应寻路算法的思考

目录 矩形地图的数组化 思路 提取实现 实现过程 &#xff08;1&#xff09;特征 &#xff08;2&#xff09;取点问题 &#xff08;3&#xff09;需要确定的变量值 &#xff08;4&#xff09;另外的 (5)适用的迷宫类型 寻路算法 数组迷宫的特点 数组迷宫的缺点 算法…

C#迷宫Winform小游戏,生成可连通的迷宫地图

上一篇本人已经写了一个控制台小游戏&#xff0c;这次使用Winform来生成可连通的地图&#xff0c;并测试运行游戏 迷宫小游戏控制台 一、先更改控制台游戏的一点点代码&#xff0c;用于测试迷宫是否连通的【即&#xff1a;从起点可以到达终点】。只用更改 MazeUtil.cs的查找路…

迷宫游戏|自动寻径|随机生成迷宫地图|UI|闯关|地图反转

MazeGame 遵循开源协议 MIT 开发工具及运行环境 开发IDE环境 : Visual Studio 2019 代码管理工具: Git 开发语言:C 程序运行环境(开发环境为(Windows10)其他兼容性未知) 依赖库 EasyX 图形界面库 EasyX官网&#xff1a;EasyX Git仓库地址 Gitee:Gitee 仓库 Github:h…

Java程序:迷宫地图生成器

Java程序:迷宫地图生成器 1、运行效果 可以在【0,50】之间随意设置行数和列数,比如设置为25行25列的迷宫地图数组。 迷宫地图的每一个方格,如果是白色,单击就变成黑色,如果是黑色,单击就变成白色。黑色对应数组里的1,白色对应数组里的0。 因为没有采用路径搜索算法来设…

Java 开发实例(第3篇),绘制迷宫1 生成迷宫地图

开发环境&#xff1a; 操作系统Win10。 1.下载Java 15&#xff0c;提取码&#xff1a;soft 2.下载软件 Eclipse 2020-12&#xff0c;提取码&#xff1a;soft 下载本博客的实例工程代码&#xff0c;提取码&#xff1a;soft 前天2月9日在逛B站App时&#xff0c;意外看到一个很…

Python 打印迷宫地图小游戏

在实现玩转小迷宫这个游戏时&#xff0c;分别使用了input()输入函数、print()输出函数、if…elif…else语句、二维列表、while循环、for循环 下面对这些用法再一次重温 1.input()输入函数 在 Python 中&#xff0c;使用内置函数 input() 可以接收用户的键盘输入。input() 函数…

html5的canvas绘制迷宫地图

canvas标签一直是html5的亮点,用它可以实现很多东西。我想用它来绘画像迷宫那样的地图。借助到的工具有瓦片地图编辑器tiled(点击跳转到下载链接)。 如图:如果你想要画像这样的迷宫地图,如果不用canvas,可以通过dom操作拼接一个一个div,以达成这个效果。那样是不是很不合…

深度优先,Kruskal,Prim几种方式生成迷宫地图

小时候玩过一款3D版迷宫&#xff0c;那时还是功能机时代&#xff0c;黑白界面拼凑的伪3D效果还是给我带来了很多快乐。后来出现了智能机&#xff0c;却再也没找到过那样纯粹的迷宫游戏。总算自己找时间做一个出来。 本文主要介绍一下深度优先&#xff0c;Kruskal,Prim几种方式生…

二维数组随机生成地图迷宫_经验分享:三套简单的迷宫地图生成方案

文/兔四 概述:文章基于一种基础的地图,来讨论三套不同的地图生成方案。 文章不会出现跟代码相关的内容,会以较为通俗的语句和不少简单的示意图来表示迷宫的生成方案。其中不少方法来自于游戏界前辈,我根据自己的基础地图做了不少修正(毕竟迷宫和地图的形式多种多样,适合自…

算法自动生成迷宫地图

文章目录 前言一、什么是&#xff08;DFS&#xff09;深度优先算法&#xff1f;深度优先算法实现步骤1.引入库2.初始化参数3.Turtle画方格函数4.开始生成数组并调用Turtle画图 二、什么是&#xff08;BFS&#xff09;广度优先算法&#xff1f;广度优先算法实现步骤1.引入库2.初…

【工具篇】Unity迷宫地图生成器MazeSpawner随机迷宫信手拈来

目录 一.迷宫生成效果 二.使用流程 三.使用场景 四.源码地址 一.迷宫生成效果 二.使用流程 1.导入后结构目录如下,打开prefab文件夹找到MazeSpawner放进场景里面

C++实现随机生成迷宫地图自动完成寻径

#include<iostream> #include<stack> #include<vector> using namespace std;template<class T> class Maze { public:Maze( //默认参数值pair<int, int> initSize make_pair(15, 17),pair<string, string> initStyle m…

Python 制作迷宫游戏(一)——地图

Python 制作迷宫游戏&#xff08;一&#xff09;——地图 序 作为一个迷宫类的游戏&#xff0c;其最重要的是什么&#xff1f;当然是它的地图啦♪(∇*) 那么我们又该如何制作一张迷宫地图呢⊙(・◇・)&#xff1f; 很显然&#xff0c;我们不可能一张张自己画吧 网络上常见的迷…

三套简单的迷宫地图生成方案

地图基础 地图的形式很多&#xff0c;这里我使用的地图是以tile块为单位分割的地图&#xff0c;地图上的tile块形式很多&#xff0c;但主要分成三种&#xff1a; A&#xff1a;陆地&#xff0c;可以在上面分布一些角色啦物件啦&#xff1b; B&#xff1a;过渡&#xff0c;根据物…

SenticNet情感词典介绍

在进行情感分析时&#xff0c;一个好的情感词典能够让我们的工作事半功倍&#xff0c;较为出名的情感词典有SentiWordNet&#xff0c;General Inquirer等&#xff0c;这篇博客将介绍另外一个出色情感词典&#xff0c;SenticNet。 简介 当谈论SenticNet时&#xff0c;我们正在…

中文金融领域情感词典构建

2019年10月4日-6日 Python爬虫与文本分析工作坊 & 课题申报高级研修班 这篇文章是公众号关注者郝童鞋今早发给我的&#xff0c;在此谢谢郝童鞋。 文章基于简单算法和人工判断&#xff0c;使用多阶段剔除法&#xff0c;构建了 中文金融情感词典CFSD&#xff08;ChineseFinan…

《学术小白的学习之路 02》情感分析02 之基于大连理工情感词典的情感分析和情绪计算

本文主要是学习参考杨秀璋老师的博客,笔记总结。 原文链接 文章目录 书山有路勤为径&#xff0c;学海无涯苦作舟原文链接一.大连理工情感词典二、七种情绪的计算2.1 pandas读取数据2.2 导入大连理工大学中文情感词典2.3 统计七种情绪的分布情况2.4 增加中文分词词典和自定义的停…

中文情感词典的构建

首先&#xff0c;国外英文的情感分析已经取得了很好的效果&#xff0c;得益于英文单词自身分析的便捷性与英文大量的数据集 WordNet。但由于中文的多变性&#xff0c;语义的多重性与数据集的缺乏&#xff0c;使得国内的情感分析暂落后于国外。本文将记录博主在项目中构建情感词…