设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8064|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。8 `3 E, w) Y  K. W( T, G

' q$ j5 a4 l7 }3 `; O2 i但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
8 {" W7 z6 C$ K( i: v- Y4 p: r  m8 h
turtles-own [a b c d k f g h; n3 q# l0 o' f8 t; D
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle . o0 L- Y0 n. X  Q# F3 @# |
]
# B2 P6 N) z3 n3 m( fto new0 o/ K% J' e: c6 q, _! `
  ca
& F( E# g, v# J3 x) o# M  crt 5 * num_of_building
2 t9 X* c- G1 B8 W+ p! }0 W' I  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]4 i: T  H& ~$ }
  scatter     ;;keep center-turtle random positions
& y2 T0 O1 Q  o1 N2 [  unit_plan   ;;make up the building plan  m, Y8 j6 S$ J2 B1 {* T8 e! U# o
end, d, Y3 c, S* [" r+ {
to scatter) l3 ?6 d$ X, ?; W
ask turtles with [remainder who 5 = 0]5 o1 U+ H4 |& B9 G
[
. ^! V4 J+ h  g9 M% Z0 u1 _9 }% sset xcor xcor - 6 + random-float 15
7 K3 m$ P( o2 e6 Y! g1 X7 E) d$ |set ycor ycor - 6 + random-float 15
; j9 D% X3 s- `]) ^: t) E# P. E; c- S, X
end; o+ _  @; ?  S) L
to unit_plan
1 r  u. P  e3 F, A; {) iask turtles [2 ~2 U9 q! _: f& w6 n6 U
if (remainder who 5 = 1) [set a who
2 ]6 T' |/ _' x# a$ B' p" h$ s                          set x ( 0 - Wid / 2 ) 6 j* J8 j+ T  i) }( j( T
                          set y  Dep / 2 ]
, p2 v( s" B, S6 ]/ Q; |           set b  int (a / 5) * 5! R2 ?' t4 @" ?  U: R
    setxy ( xcor-of turtle b + x )% W# K/ m& U4 N. [0 f: C
          ( ycor-of turtle b + y )
1 a( w( o5 L7 D" `" q" rif (remainder who 5 = 2) [set c who3 B- P0 ^# B" Y  C2 A9 q) p8 t
                          set x ( 0 - Wid / 2 )
! e  a0 j* I- O5 _1 j4 m5 i9 a                          set y (0 - Dep / 2 )  ]
& R" l" p1 Y7 X" |1 E& |- o+ ?                          set d int (c / 5) * 5
# F, G: c% d' A0 |& W   setxy   ( xcor-of turtle d + x )8 m7 V5 l7 e3 m8 L
           (ycor-of turtle d + y )
# w, q5 ~' p1 w: Y          / K/ r" S6 |: |
            
5 T0 ]& |7 j4 Yif (remainder who 5 = 3) [set k who
7 E) g  T3 ~1 H/ C3 H8 _9 o2 H                          set x( Wid / 2)  
) [$ y1 V6 M' T- L. I                          set y (0 - Dep / 2 ) ]
8 h7 l1 O' H. k! j                          set f int (k / 5) * 5  V; K8 |1 b* U# d+ i$ v
  setxy   ( xcor-of turtle f + x )% E& @' K6 `& A- I- i3 I
           (ycor-of turtle f + y )
) M& p! S/ b: O0 G! ]) y           
) T" y4 z5 r' @' p5 Q           3 u7 D& Q. p9 [6 u! S
if (remainder who 5 = 4) [set g who7 e( w7 G  _' R+ ~- m/ _
                          set x Wid / 2 / N2 `7 z6 E3 t8 x- C7 b
                          set y  Dep / 2 ]
/ w$ e( _3 Y' U+ e: T) ~                          set h  int (g / 5) * 5) G; T! V6 o, x' ^
  setxy   ( xcor-of turtle h + x )
( R# l) S( F; J$ \: X  d           (ycor-of turtle h + y )
1 T1 n, H0 f) k8 H                          : ?) {( U6 Z9 E
                          
5 I, ]/ A1 T3 |* Z+ ^; D. j                          ]
. d7 V, \: }& U1 q, J2 f: @end5 Q- p7 [* G' z; \2 w  E
6 r/ @2 t. ]( h
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
# M: h. U& ?1 I) n/ e应该是
* R; L2 @! m0 J9 Xask turtles [3 b  L3 p' J+ |" r! w  w
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
0 H  H5 f4 `2 L7 }8 N                          set y  Dep / 2
" F9 _/ h% i9 u  |           set b  int (who / 5) * 5: k8 F0 {( z* @# Q
    setxy ( xcor-of turtle b + x )+ c, {; W0 Q) ^6 \
          ( ycor-of turtle b + y )]]
9 x. ~! U9 r, j2 e: v9 A. mend
( A* q( @* p- o0 q" p( c, r之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 23:50 , Processed in 0.020208 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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