这道题让我们建立一个巢穴 在虚拟世界的中心 那我们就来建一个橘黄色的巢穴 下面来到代码界面 首先来添加一个乌龟(agent)变量 第一行说“turtle own” 在此行输入“return-to-nest?” 之后我们将再建立一个新的碎片变量 输入“patches-own [nest?]” 现在我们需要在运行程序中 加入几行代码 在“ask turtles”命令中 把"return-to-nest?"设置为“false" 如果我们不这样设置 Netlogo 会默认所有新变量为”true“ 现在来添加另一行 一个新的程序 我们把它称作”set-up-nest“ 为了添加这个程序 让我们从“set-up nest”开始 以及“ask patches” 这会给我们碎片的现状 每当一块碎片离开原位置的两个单位距离 就设定nest变量为真 具体写法是使用距离基本量,“distance 0 0” 在括号中 如果一块碎片满足这个条件 设置颜色为橘黄 别忘了用“end”来结束一个程序 让我们来检查一下 看起来我漏掉了半个括号 补上括号,现在ok了 下面来到主界面,点击安装 可以看到,很难看出这是9块碎片 但是我假设这是 在世界的中央 有一个橘黄色的巢穴 接下来题目要求我们写一些代码 使蚂蚁吃过食物之后 回到巢穴 在下一次出发之前 有很多方法可以达到这个目的 我将采用下面这种方法 首先,我要简化“to go” 程序 首先,我要简化“to go” 程序 我要建立一个新的程序 我将把它命名为“look for food” 我要来复制这一块 写一个新的程序 然后粘贴 现在我要回到 “go”程序 加入“if else return-to-nest? is false” 然后 再寻找新食物“look-for-food” 之后“if else return-to-nest?”条件满足 返回巢穴 即“return-to-nest” 目前我们还没有编写程序--回到巢穴 我们下面来编写 在这之前 先检查一下之前的代码 来看看有没有错误 点击check(检查) 我们发现我们没有编写 一个“return-to-nest”程序 我少写了一个等于号 在这一行,所以来添加等号 我们来编写return-to-nest(回到巢穴)程序 我们只需要写入 “face patch 0 0”也就是最初位置 以及向前走,这会挑选 那些return-to-nest值是真的蚂蚁 使他们面向原始位置 并向那个方向走一步 如果到达巢穴 就再次外出觅食 所以如果所在位置的颜色(pcolor)是橘黄, 也就是说回到了巢穴,我们将 设定return-to-nest为否 因为蚂蚁已经回来了 目前,没有蚂蚁 return-to-nest值是真 很明显我们需要这样做 在它们吃过食物后 把return-to-nest设定为真 下面检查代码,看起来没错 回到主界面,点击装载 点击开始 蚂蚁很多 很难看清它们在做什么 下面来减少蚂蚁的数量 来看他们在干什么 让它们减些速 你就应该可以看见 它们的行为 吃掉一块食物然后返回巢穴 然后再次出发 我们可以把颜色改回红色 使其更明显 这个我们以后再讨论