首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构建给定指定区域的具有对称形状的面片簇

构建给定指定区域的具有对称形状的面片簇
EN

Stack Overflow用户
提问于 2014-03-06 04:58:07
回答 1查看 68关注 0票数 0

为了从它们的区域构建具有给定对称形状的面片集群,我使用了以下代码:

代码语言:javascript
运行
复制
to make-cluster
let Forest-size 60000
let patch-area 10
let forest-patch-number Forest-size / patch-area
let patch-number 1
let increment-patch 1
let random-patch one-of patches with [pcolor = black]
let cluster[] 

while [patch-number <= forest-patch-number] [

ask random-patch [set cluster patches in-radius increment-patch]

ifelse all? cluster [pcolor = black] [ 
ask cluster [set pcolor green] 
set patch-number count patches with [pcolor = green] 
set increment-patch increment-patch + 1 ] 

[set random-patch one-of patches with [pcolor = black]
set increment-patch 1] ]
end 

to create-forests
let forest-percent 0
let Forest-% 10
while [ forest-percent < Forest-% ] [ 
make-cluster 
set forest-percent round ( (count patches with [pcolor = green] / count patches) * 100 ) ] 
end

实际上,我不明白为什么"ifelse“循环的"else”总是在每个时间步都执行。

非常感谢你的帮助。

EN

Stack Overflow用户

发布于 2014-03-07 05:49:59

第一次通过ifelse时,集群中的所有补丁可能都是黑色的,如果它们是黑色的,您将使用“then”分支。在“then”分支中,将集群中的补丁变为绿色。下一次通过ifelse时,条件(集群中的所有补丁都是黑色)永远不会为真,因为您只是将这些完全相同的补丁变成了绿色!所以第二次你总是使用“else”分支,所以increment-patch永远不会超过2。

我不确定我理解代码背后的意图。你想让集群保持增长,我猜?你希望它什么时候停止增长?

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

https://stackoverflow.com/questions/22209058

复制
相关文章

相似问题

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