我正在编写一个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
在这里,当我使用程序计算和山羊创建程序时,请用户两次进行输入。如何避免呢? 谢谢。 最好的问候,
答案 0 :(得分:1)
实际上,假设计算过程在每个时间步均运行,则您的代码将多次询问初始山羊。由于此信息永不更改,因此应将其存储在变量中。有两种选择。
如果要使用问题格式,则:
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