syntax-error - 错误消息 - 初始化列表时出现“需要右括号”
问题描述
我已经定义了一个海龟自己的列表,称为颜色亲和力。此列表中的 14 个条目中的每一个都由一个命名的 netlogo 颜色和一个相应的随机数组成,最多但不包括 5 个。
我正在尝试通过调用以下函数在设置过程中初始化此列表:setup-turtle-color-affinity。
我正在开发 Netlogo 6.1(最新版本)。代码如下。
turtles-own [
color-affinity
]
...
..
.
to setup
clear-all
create-turtles population
setup-turtle-color-affinity
setup-patches
reset-ticks
end
...
..
.
to setup-turtle-color-affinity
ask turtles
[ setup-color-affinity ]
end
to setup-color-affinity
[
; Here, I want to set up the list so that each turtle gets a random named netlogo color and a corresponding random "affinity" score of up to 5. However, whenever I try this (and I've tried various combinations of syntax) it gives me an error saying "closing bracket expected".
]
end
解决方案
这可能需要更多细节才能获得有用的答案 - 例如,您的颜色列表是如何设置的?在 Netlogo 中,颜色名称简单地读为数字 -grey
是 5,red
是 15,等等。你追求什么样的格式color-affinity
?
如果您要查找每个海龟的列表对列表,其中每对是颜色值和亲和度值,也许这样的事情可能对您有用:
turtles-own [
color-affinity
]
to setup
ca
let color-values ( range 5 145 10 )
crt 5 [
set color-affinity map [ c -> list c ( random 4 + 1 ) ] color-values
show color-affinity
]
reset-ticks
end
输出:
(turtle 1): [[5 4] [15 3] [25 2] [35 4] [45 2] [55 1] [65 2] [75 1] [85 2] [95 3] [105 3] [115 1] [125 3]]
(turtle 3): [[5 2] [15 2] [25 2] [35 1] [45 2] [55 4] [65 4] [75 4] [85 3] [95 2] [105 1] [115 2] [125 2]]
(turtle 2): [[5 2] [15 4] [25 1] [35 1] [45 1] [55 4] [65 3] [75 2] [85 4] [95 1] [105 4] [115 4] [125 2]]
(turtle 0): [[5 1] [15 1] [25 3] [35 4] [45 4] [55 1] [65 4] [75 2] [85 1] [95 4] [105 1] [115 1] [125 1]]
(turtle 4): [[5 3] [15 3] [25 4] [35 4] [45 2] [55 2] [65 4] [75 1] [85 2] [95 3] [105 1] [115 4] [125 3]]
编辑:
我不知道一种自动提取颜色名称的方法(并不是说没有!)-您可能必须执行以下table
扩展方法:
extensions [ table ]
globals [ color-table ]
to setup-color-table
set color-table table:make
let color-names [
"gray" "red" "orange" "brown" "yellow"
"green" "lime" "turquoise" "cyan" "sky"
"blue" "violet" "magenta" "pink"
]
let color-values ( range 5 145 10 )
( foreach color-values color-names [
[ cv cn ] ->
table:put color-table cv cn
]
)
show table:get color-table 15
show table:get color-table 65
show table:get color-table 115
end
输出:
observer: "red"
observer: "lime"
observer: "violet"
推荐阅读
- byte-buddy - 如果我有一个 JavaConstant.MethodHandle 并且我想以某种方式将它传递给 MethodCall.invoke() 有没有办法做到这一点?
- python - 将“in list”放入 if 语句中
- c++ - 如何使用 C++ 打印蝴蝶图案?
- rust - 仍然借用的 Rust 参考在此处删除
- swift - 动画 SwiftUI 文本编辑器文本
- angular - HTML 选择器中服务的 Angular 接口
- java - 从数组列表中获取和显示最高分和名称
- c# - 来自 C# 的连接错误和来自 SSMS 的工作
- java - 使用 Spring 获取 URL 参数
- android - 如何修复异常:Gradle 任务 assembleDebug 失败,退出代码为 1