netlogo中如何在多个程序中使用to-report
how to use to-report in multiple procedures in netlogo
我正在编写 NetLogo 程序,但遇到了问题。
我有 'to-report' 程序,它报告了一个值。在这份报告中,我听取了用户的意见。
但是我想在多个其他程序中使用报告的值(输出)。
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
我正在编写 NetLogo 程序,但遇到了问题。
我有 'to-report' 程序,它报告了一个值。在这份报告中,我听取了用户的意见。 但是我想在多个其他程序中使用报告的值(输出)。
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