Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Artificial intelligence NetLogo动态曼哈顿距离_Artificial Intelligence_Netlogo - Fatal编程技术网

Artificial intelligence NetLogo动态曼哈顿距离

Artificial intelligence NetLogo动态曼哈顿距离,artificial-intelligence,netlogo,Artificial Intelligence,Netlogo,我试图在我的网络徽标游戏中实现某种形式的人工智能 我正计划计算从一只僵尸龟到一只人类龟的曼哈顿距离 到目前为止,我已经设法计算了曼哈顿与这两个目标的距离,画出了路径,并将僵尸代理沿着计算出的路径移向人类海龟 我现在面临的问题是,人工代理的位置将由用户控制。曼哈顿距离使用while循环,在到达人类代理之前不会中断循环。我希望僵尸代理向人类代理移动一步,然后让人类代理移动 代码到目前为止我不确定您在绘制曼哈顿距离过程中要做什么。这似乎是一个相对简单的复杂方法,但也许我误解了你的目的。以下是我将如何处

我试图在我的网络徽标游戏中实现某种形式的人工智能

我正计划计算从一只僵尸龟到一只人类龟的曼哈顿距离

到目前为止,我已经设法计算了曼哈顿与这两个目标的距离,画出了路径,并将僵尸代理沿着计算出的路径移向人类海龟

我现在面临的问题是,人工代理的位置将由用户控制。曼哈顿距离使用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-标题)
表达式所做的:它通过比较方向列表与当前标题的绝对差异对其进行排序。此排序列表的第一项将是差异最小的项,因此也是僵尸需要使用的项


在当前的实现中,人类只是试图远离僵尸,但是你可以很容易地用玩家控制代码来代替它。

这是一个更好的解决方案。非常感谢。