首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同品种的变量

不同品种的变量
EN

Stack Overflow用户
提问于 2016-04-13 22:22:23
回答 1查看 31关注 0票数 0

我正在尝试制作一个考古模型,在这个模型中,猎人们在避难所里画画,这取决于它们的质量。

代码语言:javascript
运行
复制
breed [shelters shelter]
breed [hunters hunter]
shelters-own [quality paintings]

在设置中设置每个遮蔽物质量的值(使用一个滑块表示遮蔽物的实际数量)。

代码语言:javascript
运行
复制
create-shelters number-shelters [set quality random 100]

然后,根据每个遮蔽物的质量随机定义是否喷漆的行为:

代码语言:javascript
运行
复制
to make-painting
  ask shelters [
    if any? hunters-on patch-here [
        if random 100 < quality [set paintings paintings + 1]
    ]
  ]
end

现在,我想更复杂一点:质量不是由避难所本身定义的(因此对于每个猎人来说是相同的),而是由猎人定义的:他们每个人都会为每个避难所赋予不同的质量。绘画与否的行为仍然是对随机的测试,但是有了这个由每个个体猎人定义的新变量...

但我找不到一种方法把它写下来。

有没有人有建议?

EN

回答 1

Stack Overflow用户

发布于 2016-04-15 00:12:09

我想我做对了。基本上,我让每个猎人创建一个充满随机数的矩阵。它的大小是33x33,所以它遍及世界各地(必须将它设置为从一个角落开始,否则它将获得负坐标)。

代码语言:javascript
运行
复制
create-hunters number-hunters [
  set color white 
  set size 1
  setxy random-xcor random-ycor
  set hunter-matrix matrix:make-constant 33 33 random 10
]
ask n-of number-shelters patches [
  sprout-shelters 1 [ 
    set color one-of base-colors 
    set size 1 
    set xpatch xcor set ypatch ycor
]

然后,当它们到达避难所时,对应于该补丁位置的值将被提取并用于绘制或不绘制。

代码语言:javascript
运行
复制
ask patches [
  ask hunters-here [set quality matrix:get hunter-matrix xpatch ypatch]
  let paintings-here sum [paintings] of shelters-here
  if any? hunters-here and any? shelters-here [
    if random 10 < quality [
      ask shelters-here [
        set paintings paintings + 1]
    ]
  ]
]

尽管如此,我仍然不能完全确定它是否真的做了我认为它正在做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36601377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档