netlogo - 如何在 netlogo 的多个程序中使用 to-report
问题描述
我正在编写一个 NetLogo 程序,但遇到了一个问题。
我必须“报告”该程序并报告一个值。在这份报告中,我听取了用户的意见。但我想在多个其他过程中使用报告的值(输出)。
to-report initial-goat
let goats-number read-from-string user-input "How many goats are there ?"
while [goats-number > 100] [set goats-number read-from-string user-input "Please enter a value below or equal to 100 "]
report goats-number
end
to goat-create
create-turtles initial-goat
end
to calculate
let x initial-goat
let alive count turtles
let dead (x - alive)
end
在这里,当我使用程序进行计算和山羊创建时,程序要求用户两次输入。如何避免这种情况?谢谢。最好的祝福,
解决方案
事实上,假设计算过程在每个时间步运行,您的代码将多次询问初始山羊。由于此信息永远不会更改,因此您应该将其存储在变量中。有两种选择。
如果要使用问题格式,则:
globals [initial-goat]
to get-initial-goat
set goats-number read-from-string user-input "How many goats are there ?"
while [goats-number > 100] [set goats-number read-from-string user-input "Please enter a value below or equal to 100 "]
end
to goat-create
create-turtles initial-goat
end
to calculate
let alive count turtles
let dead (initial-goat - alive)
end
但更常用的方法是在界面上简单地设置一个滑块,而不是提出问题。您将有一个滑块(上限为 100),然后您只需要:
to goat-create
create-turtles initial-goat
end
to calculate
let alive count turtles
let dead (initial-goat - alive)
end
推荐阅读
- ffmpeg - How to split a mp4 file into multiple .m4s chunks with one init.mp4 file
- c - 从指令指针偏移的目标文件的反汇编
- ios - 如何在 swift 4.2 中为 UITableViewCell 的自定义视图设置阴影?
- javascript - JavaScript 计算器 - 只有一个按钮不起作用(平方根)
- javascript - 角度 6,RangeError:指定的时区无效:未定义
- csv - 提取数据
- c# - 如何手动触发 Hangfire 作业?
- mysql - SQL 查询优化 (Mysql 5.7)
- css - SVG CSS 动画问题 - 动画期间奇怪的线条/点闪烁
- discord.js - 如何发送全局消息?