Netlogo 有人能用外行解释一下“问”和“同时问”吗;什么条件?

Netlogo 有人能用外行解释一下“问”和“同时问”吗;什么条件?,netlogo,Netlogo,我真的很难理解这个概念。当我使用它时,它看起来并不是同时执行它如果您还没有,我建议您在模型库的代码示例部分尝试Ask并发代码示例。以慢速运行 据我所知,ask concurrent实际上不应该同时在turtles中运行过程。《编程指南》中的声明是,ask concurrent按顺序运行ask[…]中的每个命令,每次运行一个海龟。它与ask的不同之处在于,如果大括号中有多个命令,ask concurrent将在一个海龟中运行第一个命令,然后在另一个海龟中运行相同的命令,依此类推,直到它在每个海龟a

我真的很难理解这个概念。当我使用它时,它看起来并不是同时执行它

如果您还没有,我建议您在模型库的代码示例部分尝试Ask并发代码示例。以慢速运行

据我所知,
ask concurrent
实际上不应该同时在turtles中运行过程。《编程指南》中的声明是,
ask concurrent
按顺序运行
ask[…]
中的每个命令,每次运行一个海龟。它与
ask
的不同之处在于,如果大括号中有多个命令,
ask concurrent
将在一个海龟中运行第一个命令,然后在另一个海龟中运行相同的命令,依此类推,直到它在每个海龟
ask
ed中运行第一个命令。然后它在选择的第一只海龟中运行第二个命令,然后在第二只海龟中运行第二个命令,依此类推。相比之下,
ask
将为第一只海龟运行括号内的所有命令。然后它将运行第二个海龟的所有命令,依此类推


因此,
ask
ask concurrent
之间的区别只有在括号中有多个命令时才会显现出来,即使如此,
ask concurrent
仍然按顺序处理海龟。

另外,从以下两个方面来看:
向前
fd
)和
向后
bk
)命令是经过特殊处理的。在
ask concurrent
中使用时,这些命令可以轮流执行。在它的回合中,海龟只能移动一步。因此,例如,
fd 20
相当于
repeat 20[fd 1]
,海龟的回合在每次运行
fd
后结束。如果指定的距离不是整数,则步骤的最后一部分将进行整圈。因此,例如
fd 20.3
相当于
repeat 20[fd 1]fd 0.3。
ask concurrent
的存在只是为了与非常旧版本的NetLogo向后兼容。我不建议你用它来做任何事情。