Artificial intelligence NetLogo动态曼哈顿距离
我试图在我的网络徽标游戏中实现某种形式的人工智能 我正计划计算从一只僵尸龟到一只人类龟的曼哈顿距离 到目前为止,我已经设法计算了曼哈顿与这两个目标的距离,画出了路径,并将僵尸代理沿着计算出的路径移向人类海龟 我现在面临的问题是,人工代理的位置将由用户控制。曼哈顿距离使用while循环,在到达人类代理之前不会中断循环。我希望僵尸代理向人类代理移动一步,然后让人类代理移动Artificial intelligence NetLogo动态曼哈顿距离,artificial-intelligence,netlogo,Artificial Intelligence,Netlogo,我试图在我的网络徽标游戏中实现某种形式的人工智能 我正计划计算从一只僵尸龟到一只人类龟的曼哈顿距离 到目前为止,我已经设法计算了曼哈顿与这两个目标的距离,画出了路径,并将僵尸代理沿着计算出的路径移向人类海龟 我现在面临的问题是,人工代理的位置将由用户控制。曼哈顿距离使用while循环,在到达人类代理之前不会中断循环。我希望僵尸代理向人类代理移动一步,然后让人类代理移动 代码到目前为止我不确定您在绘制曼哈顿距离过程中要做什么。这似乎是一个相对简单的复杂方法,但也许我误解了你的目的。以下是我将如何处
代码到目前为止我不确定您在
绘制曼哈顿距离
过程中要做什么。这似乎是一个相对简单的复杂方法,但也许我误解了你的目的。以下是我将如何处理整个问题:
globals [
zombie
human
]
to setup
clear-all
ask n-of 2 patches [ sprout 1 ]
set human turtle 0
ask human [ set shape "person" ]
set zombie turtle 1
ask zombie [ pen-down ]
end
to go
ask human [ flee zombie ]
ask zombie [ pursue human ]
end
to pursue [ target ]
face target
set heading first sort-by [abs (?1 - heading) < abs (?2 - heading)] [0 90 180 270]
fd 1
end
to flee [ pursuer ]
face pursuer
rt 180
fd 0.5
end
globals[
僵尸
人类
]
设置
清除所有
询问n-2个补丁[萌芽1]
将人龟设置为0
询问人类[设定形状“人”]
设置僵尸龟1
问僵尸[放下笔]
结束
外带
询问人类[逃离僵尸]
问僵尸[追人类]
结束
追求[目标]
面对目标
通过[abs(?1-标题)
肉在程序中。由于僵尸无法预测人类将要去哪里,它只是试图朝着它的大致方向移动。它从直接面对人类开始(使用方便的NetLogo原语)。但由于它大概只能在四个基本方向中的一个方向上移动,因此它必须选择最理想的方向,即:与当前(理想)方向差异最小的方向。这就是排序依据[abs(?1-标题)
表达式所做的:它通过比较方向列表与当前标题的绝对差异对其进行排序。此排序列表的第一项将是差异最小的项,因此也是僵尸需要使用的项
在当前的实现中,人类只是试图远离僵尸,但是你可以很容易地用玩家控制代码来代替它。这是一个更好的解决方案。非常感谢。