javascript - 用于在网格中的所需位置周围查找空单元格的算法

标签 javascript algorithm optimization grid

我将使用所附图片描述我的问题:

grid

绿色 block 是我的游戏实体的起始位置。接下来我想把它移动到橙色方 block 标记的位置。但与此同时,我假设悬浮是不可能的或者/&这个 block 是一堵墙。无论哪种情况,去那里都是不可能的。所以我需要想办法找到第一个可用位置(尽可能靠近橙色方 block )让我的实体移动(在这种情况下,它要么是灰色列的顶部,要么指向橙色下方的两行正方形)。

我有一个描述网格的二维数组,其中 1 是一面墙,0 是空白空间。

data = [
    [1,1,1,1,...],
    [1,0,0,0,0,...],
    [1,0,0,...],
    ...
]

我正在以这种方式考虑解决方案(例如,我可以在 1. 处检查我的单元格下方是否有地板并结束算法,或者如果没有则继续单元格 2。 ) 但我想不出一种有效(且轻松)执行此操作的方法。

enter image description here

有没有人知道如何解决这个问题?我不太确定我应该向谷歌询问什么算法:)

最佳答案

您正在寻找 Q 学习算法。这是强化学习的一种形式。这是一个http://en.wikipedia.org/wiki/SARSA

基本上,您在源和目标之间多次运行模拟,并且每次都越来越接近发现目标。

关于javascript - 用于在网格中的所需位置周围查找空单元格的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16726333/

相关文章:

c# - Tic Tac Toe完美AI算法: deeper in "create fork" step

市场清算算法

performance - 我可以做些什么来提高 Lua 程序的性能?

javascript/vscode - 如何在运行配置设置中添加/修改默认库引用路径

php - 为什么一个已知的 PHP 文件给出 404?

javascript - 如何阻止Javascript间隔函数重新启动?

algorithm - 多路KK差分算法与贪心算法?

计算许多地理点之间距离的算法

java - JFrame 设置的简短编写方式

javascript - 动态创建图像上的滑动面板