2014-11-04 109 views
0

我无法完成这个模型。这个概念是为了向一系列海龟提出问题。每只龟代表一个知识领域,每个问题应该包含多个随机知识领域。要求其ID与问题中的一个域匹配的海龟被要求回答。然后根据乌龟的能力和专业知识对他们的答案进行评分。麻烦写入文件

我希望我有代码的骨头在一起,但我无法验证,直到我可以得到一些输出到Excel。任何人都可以通过我的“书写”说明告诉我哪里出错了吗?当我运行模型时,没有文件被更新或创建。你能发现代码中的其他缺陷吗?

感谢, 约翰

globals 
[question 
answer] 

turtles-own 
[abilities 
expertise 
expert 
] 

to setup 
clear-all 
file-open "/Users/johnhayes/ProjectFile.csv" 
create-turtles 500 
set question [] 
set answer [] 
reset-ticks 
end 

to go 
ask turtles [initialise-turtles] 
create-question 
set answer [] 
ask turtles [give-an-answer] 
evaluate 
show (list "relevance quality" answer) 
stop 
tick 
if ticks >= 1000 [file-close stop] 
print-answers 
end 

to initialise-turtles ; turtle proc 1 
set abilities (random 10) ; abilities assigned randomly to each turtle. 
set expertise (random 10) ; expertise assigned randomly to each turtle. 
set expert (FALSE)   
end 

to create-question 
set question n-of 500 turtles 
end 

to give-an-answer ; turtle proc 2 
if member? self question 
[ set expert TRUE ] ; mark as expert  
end 

to evaluate ; turtle proc 3 
let expert-group no-turtles 
set expert-group (turtles with [expert = TRUE]) 
show (list ([abilities] of expert-group))   
show (list ([expertise] of expert-group))  
set answer lput (sum [abilities] of expert-group) answer set answer lput (sum[expertise] of expert-group) answer 
end 

to print-answers 
file-open "/Users/johnhayes/ProjectFile.csv" 
file-print answer  
file-close  
end  

回答

-1

“\”是的NetLogo转义字符把它读作\你必须把它加倍。

file-open "/Users/johnhayes/ProjectFile.csv" 

变为

file-open "\\Users\\johnhayes\\ProjectFile.csv" 

然后项目将打开或创建。

您可能想要考虑使用BehaviorSpace进行输出,它可以在工具下找到,并且可以让您将模型的各种运行的所有输出合并到一个.csv中单击new并按照说明进行操作。

在你的情况使用答案作为你的记者。

编辑斜线阅读障碍。

+0

谢谢。我已经更新,但我仍然没有得到一个打印的文件。我刚刚意识到,当我运行模型时,ticks count并没有更新,但我正在命令中心获取输出。 – 2014-11-04 17:08:22

+0

我想通了。您的解决方案解决了我的打印文件问题,但在写入文件之前,有一个命令'停止'该过程。我的部分愚蠢的错误! – 2014-11-04 17:27:00

+0

玩得开心netlogo是蜜蜂的跪姿 – 2014-11-04 17:31:13