在网格上编写随机路径从哪里开始比较合适?

2023-12-08

我不知道从哪里开始,我不是要求别人为我做这件事,但我不知道如何做,所以如果有人能指出我正确的方向,那就太好了,我无法使用谷歌找到任何东西,这就是我需要的:

我需要创建一条从网格一侧到另一侧的路径,但不是以随机方式最短,我需要确保如果路径与路径的另一部分平行,则至少相距 2 个单位。

提前致谢


我曾经编写过一个迷宫生成器,它首先创建穿过迷宫的路径,如下所示:

在 y 轴上选取两个随机偏移量,每侧一个,y1 和 y2,然后在 x 轴上选取一个随机偏移量 x。然后用从 (0, y1) 到 (x, y1)、(x, y1) 到 (x, y2)、(x, y2) 到 (w-1, y2) 的直线连接两个点,其中 w 是宽度:

     x
   .....
y1 XXX..
   ..X..
   ..XXX y2
   .....
   |-w-|

然后,我反复向初始路径添加“凹凸”,直到其达到所需的长度,例如原来长度的两倍。

凹凸看起来像这样:

Before:

 .....
 XXXXX
 .....
 .....

After:

 .....
 XX.XX
 .XXX.
 .....

这种类型的变换可以应用于当前路径上四个方向中任何有可用空间的任何位置。

(我的 ASCII 艺术技能还有很多不足之处 - 我希望你明白)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在网格上编写随机路径从哪里开始比较合适? 的相关文章

随机推荐

  • 如何检测来自 CNAME 子域的传入请求(使用 PHP 脚本)?

    我们有一个简单的基于 php 的重定向应用程序 这是一个例子 Spiderman com redirection redirect to marvel php 脚本位于 redirection 文件夹中 假设它将上述链接重定向到 marve
  • mysql和DECIMAL存储空间?

    根据我对手册的理解DECIMAL在 mysql 文档中 它指出九个数字的每个倍数需要 4 个字节 其余数字如下 number of digits leftover bytes 0 0 1 1 2 1 3 2 4 2 5 3 6 3 7 4
  • 对与另一个数组相关的数组进行排序

    我有两个数组 x and y 其中 y 是中每个元素的十位值x 现在我想排序y 但是 顺序y将不同于x的 所以 在对哪个元素进行排序后我无法判断y例如 与x 0 也许我想要 双重排序 Array Sort has 超载接受two数组 一份用
  • 更新 MySQL 中的列

    我有一张桌子table1三列和一堆行 key col col a col b 我想用一组值更新 col a 即离开col b不变 像这样 INSERT INTO table1 AS t1 key col col a VALUES k1 fo
  • 将两个 UISplitViewController 子控制器保留在第一响应者链中

    我有一个基于文档的应用程序 其中 NSSplitViewController 作为主窗口的内容视图控制器 左窗格包含带有控制器的自定义视图 该控制器实现一些菜单命令 右窗格包含一个带有控制器的标准 NSTableView 当应用程序启动时
  • 基于 Eclipse JSDT 的编辑器的内容辅助

    在 Eclipse 中 内容辅助通常由某个类实现implements IContentAssistProcessor JavaDoc example 如何实现同样的CompletionProposals 用于基于 JSDT 的编辑器 我知道
  • 如何在整个应用程序中禁用 iOS 11 拖动?

    出于安全原因 我想在整个应用程序中禁用新的 iOS 11 拖放功能 更具体地说是拖动部分 在 iOS 11 中 默认情况下 所有可以选择文本的地方 弹出窗口 文本视图 网页视图等 的文本都会发生这种情况 我不知道有什么方法可以完全禁用拖动功
  • 使用提交消息中的主题标签在 Jenkins/Hudson 中触发构建

    仅当提交消息中出现特定字符串时 是否可以触发 Hudson Jenkins 构建 例如 我想触发一个构建 通过编写如下提交消息来将我的应用程序推出到开发环境 MYPROJECT 123 修复了 MyClass java 中的 NPE 部署
  • 如何检测 iOS 应用程序是否已重新安装(从 XCode)或升级(从 AppStore)

    我们正在开发的应用程序使用应用程序包中包含的二进制文件 由于需要处理该文件 并且在某些情况下需要重写该文件 因此应用程序会在首次启动时或每当应用程序支持中缺少该文件时 都会将此文件复制到 库 应用程序支持 目录中 然后 应用程序每次启动时都
  • 如何在开始滚动之前为 LazyColumn/ViewPager 设置阈值?

    我正在使用实验性浏览器Jetpack compose 是基于LazyColumn Row 我想做的是设置一些阈值 确定在开始滚动到下一页之前我需要移动手指多少 默认行为是 只要我移动手指 它就会开始滚动 但我希望有一个更大的阈值 即在发生任
  • Terraform 生命周期忽略更改

    我正在尝试对资源资源 aws servicecatalog provisioned product 中的参数应用生命周期ignore changes规则 如下所示 resource aws servicecatalog provisione
  • 如何递归地“扩展”XML/XSD 中的所有内容?

    是否有任何应用程序可以使用带有某些包含的 XML 文件 实际上是 wsdl 作为输入 并递归地浏览这些包含以生成最终的 XML 确实很大 并将目标包含合并到其中 说明 BDS 2006 WSDL 导入程序无法处理包含内容 并且导入的 xsd
  • 接受 POST 请求的 Node.js 服务器

    我正在尝试允许 javascript 与 Node js 服务器进行通信 POST 请求 网络浏览器 var http new XMLHttpRequest var params text stuff http open POST http
  • 空手道启动功能

    需要在所有测试用例执行之前执行 健康检查 测试 功能 这就像执行一堆测试用例之前的初步测试 如果任何预检查失败 则需要退出平台的解决方案 执行您的健康检查功能karate config js using karate call karate
  • 如何使用正则表达式删除末尾可能存在或不存在的模式

    我想在不包含字符串末尾可能存在或不存在的特定模式 括号中的任何内容 的情况下进行捕获 我想捕获以下 3 个示例中除字符串 排除 之外的所有内容 aaaaaa bbbbbb exclude cccccc 我尝试了以下正则表达式 0 1 您可以
  • 将Google结果对象(纯js)转换为Python对象

    所以我尝试使用 Google Map suggest API 来请求地名建议 不幸的是我找不到这方面的文档 下面是一个 URI 示例 返回 suggestion query London 我想在 python 2 5 中使用它 现在 在正确
  • 如何在angularjs中设置范围滑块中的时间?

    我正在使用具有可拖动范围的滑块 https jsfiddle net ValentinH 954eve2L 在 Angular js 中用于时间选择 我想在这个滑块中设置时间 所以我的时钟是从 00 00 到 24 00 但我想设置时间间隔
  • 如何在 Objective C iPhone 编码中播放声音

    我正在开发一个应用程序 它使用一些硬件传感器在屏幕上提供数据 有一个标签随数字更新 我希望每当数字超过 100 或其他值时就播放声音 例如 假设它正在读取数字 然后突然它找到了一个好位置 或其他什么 然后我想要播放声音或点亮灯光 我是一个绝
  • 通过Java找出系统RAM

    我正在编写一个程序 需要在其中进行最小系统 RAM 验证 我如何计算在 JVM 中执行代码的机器的 RAM 我认为纯java根本不可能 在 JVM 中 您只能测量 JVM ram 而不能测量系统 RAM http docs oracle c
  • 在网格上编写随机路径从哪里开始比较合适?

    我不知道从哪里开始 我不是要求别人为我做这件事 但我不知道如何做 所以如果有人能指出我正确的方向 那就太好了 我无法使用谷歌找到任何东西 这就是我需要的 我需要创建一条从网格一侧到另一侧的路径 但不是以随机方式最短 我需要确保如果路径与路径