设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7527|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
' M" R6 H/ E6 z0 C2 W" c7 I% R4 P+ A% @! @, Q- ~* W8 M
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
/ @- P$ e+ B/ k1 s7 E8 B# P( ?
- U! I6 J, F8 @& a# iturtles-own [a b c d k f g h, x& ?" s, @8 v/ s# _
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ) v8 G4 J! A) c# z5 f7 w
]( X8 |: d: |- a+ H/ j1 s  P6 X
to new
. ]! R/ c4 z9 o3 i  ca
, K7 N+ V8 |2 t. `' @  crt 5 * num_of_building
7 J* G# m: w  H4 g7 w6 l% K  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]% l+ F0 o, Z" o: G" V# ?
  scatter     ;;keep center-turtle random positions 9 z. L0 P: t2 x0 \! h4 r
  unit_plan   ;;make up the building plan
$ M, d; ~( P; d" h$ `5 r3 fend
) ]7 W7 E: X3 |/ T: Q3 L8 kto scatter9 P; ^- w& J7 D( N; z* @: k, k) s
ask turtles with [remainder who 5 = 0], k! j  J7 i8 _" w8 j
[
6 V  y% V* y: Mset xcor xcor - 6 + random-float 15
- }7 U3 }+ ~) X$ tset ycor ycor - 6 + random-float 15( C# ]$ j- l8 Y! B
]; ^) }6 K' R: n2 N  e
end
( U* S  ?0 [$ V- q- ^  I: t$ t6 ?5 H! gto unit_plan 7 V/ v7 d+ H9 K
ask turtles [% H  W! l. j+ u  }2 o. o! }
if (remainder who 5 = 1) [set a who
$ A) ?. o! k  K& Z5 N                          set x ( 0 - Wid / 2 )
5 U! A0 h. W8 b/ f8 Z0 n7 T                          set y  Dep / 2 ]
' e& O# F# J( _8 O8 T           set b  int (a / 5) * 5
) V: {9 I( m) O( [    setxy ( xcor-of turtle b + x )
0 B* `/ I! h/ f, s          ( ycor-of turtle b + y )
: d: m% H$ ?9 \1 I: U- T1 {if (remainder who 5 = 2) [set c who' t# e$ D/ `; M5 O/ O; }- \
                          set x ( 0 - Wid / 2 ) & k8 v6 @" J$ |8 h5 G* m8 W" w
                          set y (0 - Dep / 2 )  ]+ D! X8 {" o, R9 A$ I
                          set d int (c / 5) * 5
. Z8 x/ z: F8 s   setxy   ( xcor-of turtle d + x )
" J0 e, f' d6 ~3 i" J           (ycor-of turtle d + y ) * }$ ~6 r1 t& p9 L) i/ ?
          - l6 {" I1 U$ J; @0 Z( ?6 H  T7 U5 J
            " T3 H" a2 [* a  t1 A% k
if (remainder who 5 = 3) [set k who
8 ?3 ?- g0 ?6 q  Q                          set x( Wid / 2)  
; \4 o) r* c" j& s7 K+ f: g                          set y (0 - Dep / 2 ) ]
$ a- c+ E: P. _/ B* ^$ |" W                          set f int (k / 5) * 5/ e6 M# \' I4 V  f8 x8 Y
  setxy   ( xcor-of turtle f + x )5 Q. R$ z1 @. i+ u
           (ycor-of turtle f + y )
, H/ |7 W8 J, r- V1 F! {* B3 t           / D1 ~9 ~8 q, |
           
9 A- l6 ^$ \; U/ G" eif (remainder who 5 = 4) [set g who
/ C' R0 D0 [% y9 {                          set x Wid / 2 % u- O% z2 b+ |  ]. W0 j- q& K& G9 x
                          set y  Dep / 2 ]- @" M, _# ?& [$ h7 s( n. ^
                          set h  int (g / 5) * 5
& r8 I; O, I" R/ j7 l, \* E  setxy   ( xcor-of turtle h + x )
& Y" K) N. C* u           (ycor-of turtle h + y )
- v; T3 I  G. Y; a! R$ w. O                          
% y3 W$ |4 G) K7 D                          
. v" {9 F+ P4 M                          ]
# h& j7 k/ O3 z( h5 qend6 d( T' X2 U+ Y% J  @

7 S3 R1 X# f6 v5 s+ b2 f[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,3 A  y. H7 O: z* e4 m) Q' ~
应该是2 W$ n5 ~0 ^( N" n" A/ b( l
ask turtles [- i2 M4 e/ ^9 P8 b" i
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
5 H* D# Q3 k. X9 N) R' t$ L                          set y  Dep / 2
' J/ Q0 v& @5 E, a           set b  int (who / 5) * 5& i! T1 |2 ]& H8 C
    setxy ( xcor-of turtle b + x )
( B4 o. v, W. k% T2 C          ( ycor-of turtle b + y )]]! Q9 j( [, J4 \  |  l% p6 B
end& F9 |9 C6 j# Z" e7 W
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-22 04:00 , Processed in 0.018794 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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