【发布时间】:2017-05-08 10:16:58
【问题描述】:
我想问一个问题,当我尝试输入此代码时,我收到了错误
> 运算符只能用于两个数字、两个字符串或两个相同类型的代理,但不能用于数字和列表。
我想问的是如何解决这个问题,错误发生在代码的这一行:
如果 pri-lev > oppoint1 的 [pri-lev] 和 oppoint2 的 pri-lev > [pri-lev]
我尝试将其更改为“cars-on”或“cars with”,但它们都无用。我也尝试在 Netlogo 字典上查找,但在将代理定向到特定路径的代码上没有找到结果。 我在这里尝试做的是,当代理到达特定部分时,它将检查是否有任何代理列为“oppoint1”; “对点2”; “对立3”; “oppoint4”,然后将价值调用 pri-lev 与其他价值进行比较,以决定继续移动或停止并等待其他人。 这些是我的代码的一部分:
ask cars
[
let oppoint1 (cars-at (xcor + 2) (ycor + 2))
let oppoint2 (cars-at (xcor - 1) (ycor + 1))
let oppoint3 (cars-at (xcor - 2) (ycor + 1))
let oppoint4 (cars-at (xcor - 3) (ycor + 1))
ifelse oppoint1 != nobody and oppoint2 != nobody
[
if pri-lev > [pri-lev] of oppoint1 and pri-lev > [pri-lev] of oppoint2
[
set pri-lev 4
speed-up
]
]
[
if oppoint2 = nobody and oppoint3 = nobody and oppoint4 = nobody
[
set speed 1
fd speed
if turning = "Rtrue"
[
set heading heading + 90
speed-up
]
]
]
]
真诚的,明赫
【问题讨论】:
标签: netlogo