设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8774|回复: 1

[交流] 看看这段代码的问题

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
5 x$ J8 s' V: U7 [) d. \0 f
/ b" {& I/ V8 J' d/ c- M但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。  z7 W8 H  t. b8 W5 _

( w4 D( ?. w! [/ M5 X3 {turtles-own [a b c d k f g h. e# H1 H- r/ F% y4 F4 F) X6 a$ E
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ' ^( L  w) q6 T% |* h5 Q
]3 S8 R& i. g6 c) n
to new6 a+ |/ q9 Y; p5 s0 \3 {
  ca
/ X' t% b4 K$ E$ x  crt 5 * num_of_building4 [/ [) f* m" h5 X9 E
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
5 B2 b5 [- n! U$ b) x1 ^( u  scatter     ;;keep center-turtle random positions ' Z* z# P  ]) d5 V5 D( V- w6 Y7 g
  unit_plan   ;;make up the building plan
" h- r3 r' q4 `end! U+ m" Z# ~, q& T- S0 e
to scatter
% P  W$ s  ?) `ask turtles with [remainder who 5 = 0]
( k  f6 {) l' g; Z[5 C4 Q5 ^$ a1 {9 B7 Z/ a4 E" K2 B
set xcor xcor - 6 + random-float 15) S* ?! G; y/ J! }- s; c: U) e
set ycor ycor - 6 + random-float 15
" |- O6 T7 e( M, I. d3 r]. y' E; c7 l: D8 k- D* \1 ?3 {
end
3 K: Y% ~3 N( h+ V1 ?3 @to unit_plan 0 a/ o) y8 u! y) ^( |- r2 f. C) J
ask turtles [
* [9 I, D- m  I5 w$ v0 `* f. v. eif (remainder who 5 = 1) [set a who
. ^- j0 u2 j& s9 u/ d                          set x ( 0 - Wid / 2 ) 3 I) b$ O' ]7 V. T' B
                          set y  Dep / 2 ]. Z8 g% e# {6 X2 [+ ?, J% i7 B
           set b  int (a / 5) * 5
/ ~! f3 l( W- l; O    setxy ( xcor-of turtle b + x )
! U- s' x4 A/ F* L          ( ycor-of turtle b + y ), e" c2 w# j( [
if (remainder who 5 = 2) [set c who8 c7 b9 O0 M6 u, G& K
                          set x ( 0 - Wid / 2 ) 3 d2 G/ T. n4 `1 W
                          set y (0 - Dep / 2 )  ]
( n& l+ U) U: S: O0 T5 _: x                          set d int (c / 5) * 5
+ D8 y3 f6 p! O# L7 r   setxy   ( xcor-of turtle d + x )
2 f5 a. @) w5 _: o           (ycor-of turtle d + y )
+ E; }2 Q, h# E& q+ j          + ?# S% M; T  O3 f% P& \, n5 F
            & E% g- R1 Q- i9 V
if (remainder who 5 = 3) [set k who% n& X% R+ Q9 K1 l& Q; b2 C5 _- M
                          set x( Wid / 2)  5 u6 ]" |1 D- u3 H6 U3 J
                          set y (0 - Dep / 2 ) ]3 o' r' S5 s/ \0 O- t' P& j2 \( [
                          set f int (k / 5) * 56 \; \( S3 n" J/ O- S3 f
  setxy   ( xcor-of turtle f + x )5 X  ~1 U0 [  b1 Y
           (ycor-of turtle f + y )
& [# ^; M5 {; s* ~/ V0 g/ g8 D           
6 R0 P7 Z: r" X) h$ r           
8 s5 \" r2 i1 m. m! Dif (remainder who 5 = 4) [set g who0 `  O0 G% f1 M5 B1 s* w$ r' z
                          set x Wid / 2 : R$ ], Z5 e4 Y7 V- _3 J
                          set y  Dep / 2 ]9 k9 `8 @8 k: t. w0 W
                          set h  int (g / 5) * 5! q: D( L- c+ v/ }; d- E5 {2 [
  setxy   ( xcor-of turtle h + x )
# V$ x& E! ?) C, \: v           (ycor-of turtle h + y ) 6 g! U. x$ W2 `( F
                          
4 T( q' h' B, m7 f                          % t/ x: j7 s3 D3 U
                          ]
& T, @* Z7 E2 {4 A2 P6 Z  pend
# K% R' v, ~6 a
4 `9 T8 h- W1 j, t* {[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,& D& Y' D5 H' W' E3 S& N
应该是1 R8 {9 V' j- P+ ~
ask turtles [& S; q- q5 k/ a* U& n
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) # ]8 R5 w$ T/ g+ m8 S# r
                          set y  Dep / 2 ) J: O) f7 Q6 c8 I4 F" `: z# }
           set b  int (who / 5) * 5
3 d; r! L1 \0 ^- S5 O9 g* Q    setxy ( xcor-of turtle b + x )
6 x( _* Y5 `% G- W# S          ( ycor-of turtle b + y )]]3 ^- Z+ V1 S% G
end
1 p. z0 ^% ^" X: [之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-8-2 05:13 , Processed in 0.019719 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表