如何解决循环代码的特定部分而不丢失记录的变量
我试图找到一种方法来循环特定的代码块,而不会丢失在块内完成的任何记录属性。
即我的代码流程是这样的:
setup environment (button)
setup drivers (button)
go: (button which incorporates the below)
1. trip assign
2. move-drivers
3. check-distance
tick
end
代码从用户输入的一些驱动程序开始,一旦我在设置后点击开始,它们就会被分配一个特定的行程,其中包含与特定目的相关的颜色、行驶距离限制等变量,然后开始移动以系统的方式。每次向前移动都记录为 +1 行驶距离,一旦达到指定的限制,它们就会停止。
问题是,一旦每个司机停下来(到达距离 lim),我想将其记录为他们的 1 次行程,并循环(由我创建的变量确定的次数)将他们返回到行程分配、运动和检查距离部分(带有新的新分配)而不会丢失我的总距离数字或他们记录的任何变量。即,我想为单次运行中记录的每个驾驶员模拟多次行程。
解决方法
我不确定您的代码的详细信息,但您可以尝试向驱动程序添加另一个属性,从 go 中取出行程分配,并且不对驱动程序使用 stop
。这是示例:
; assume you specify your turtle breed as drivers
drivers-own
[ total-distance ]
to setup-environment
; write your original code
end
to setup-drivers
; write your original code
trip-assign
end
to go
move-drivers
check-distance
tick
end
to check-distance
ask drivers
[ if distance = distance-limit
[ set total-distance (total-distance + distance)
set distance 0 ;reset the distance ]
trip-assign ;assign again for next trip
]
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。