设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9068|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
, o! m8 e5 `4 [9 p+ l* P
3 J) ?* v! j" G: z9 E6 j( b0 O但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
* A7 N" _2 s% ~5 f
/ w& |4 {4 G# M! x- ~8 u9 @) G& }turtles-own [a b c d k f g h
; b9 x% p  }3 o) }+ Z! Y4 r  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
0 X- V/ K" ~& }( y' []1 O3 B" W# W$ h
to new
* n; o% o! \1 u3 v3 z. m4 D7 U  ca4 c$ b3 r2 `* }: I
  crt 5 * num_of_building  B& B' j# u& j+ r- r
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
( q* J3 N  @* q; F, f& j  scatter     ;;keep center-turtle random positions
0 N+ a! c+ S6 P2 l  unit_plan   ;;make up the building plan. X4 n" W+ R) l  \) n! c
end
' c- P6 s  f+ f+ w  cto scatter* |! W+ Z) k* I" ^" Y1 w! m% t
ask turtles with [remainder who 5 = 0]
. @' ]) {% v% T6 F  g0 F* r[6 K3 |) {( r) k9 g0 C! |4 M0 N2 |2 ^
set xcor xcor - 6 + random-float 15" A' h: s2 H% D* e. U! D
set ycor ycor - 6 + random-float 15
- h" l' y" X+ c6 i5 K$ s]) r) n: c& W: e, H+ v3 P8 k
end1 |$ f4 d7 S7 b( C
to unit_plan ) z+ O, {; D" _7 s% O
ask turtles [
5 m8 L# |9 R8 x( j2 n2 Tif (remainder who 5 = 1) [set a who 4 h* _$ G" M# o1 O
                          set x ( 0 - Wid / 2 ) ! r) m/ a, v1 |" c# J1 f8 }! G
                          set y  Dep / 2 ]+ K( h1 n- r+ R! ]" b; V
           set b  int (a / 5) * 5
3 f* Y1 U3 W/ s9 p1 |$ \% r    setxy ( xcor-of turtle b + x )2 S; p/ K" T" ^. \. w8 G1 ]" x7 `
          ( ycor-of turtle b + y )
4 i; w1 j& N. c" j3 c9 K6 Fif (remainder who 5 = 2) [set c who
7 p3 A" y! Z2 o+ e* O) S7 v3 K                          set x ( 0 - Wid / 2 ) / A. c) C8 ?4 y$ K* Z; V
                          set y (0 - Dep / 2 )  ]
; u, ^" V  D0 n( T, _& V/ p0 M$ K                          set d int (c / 5) * 5
, M: _$ X( m! F4 }   setxy   ( xcor-of turtle d + x ): i! t  C/ r' f1 Y" J
           (ycor-of turtle d + y )
2 y. O' p: [7 q0 Q  I          * L: o' t( {5 |" L  g7 ]8 {
            
) O" n9 R1 W0 X( I  R' C+ tif (remainder who 5 = 3) [set k who' J6 k, p" n/ d
                          set x( Wid / 2)  1 D% w5 r( ?, ?+ S7 p
                          set y (0 - Dep / 2 ) ]
0 w+ N, F. w; _9 p- {1 i% H- F3 }                          set f int (k / 5) * 53 A, z6 I  d' R" A5 C% G2 a
  setxy   ( xcor-of turtle f + x )
! ]- N& q0 l1 @* e: b, i7 P           (ycor-of turtle f + y )
4 v" M. C* S3 R' a* `, G  J+ Z           8 n( ^8 k9 Q2 B4 @7 O
           $ z9 [$ e! }2 w1 \/ k) ^
if (remainder who 5 = 4) [set g who
, z+ z6 r) m8 Y- w- ~. }' Y- Y                          set x Wid / 2 8 `8 F$ E; d$ r, B2 a
                          set y  Dep / 2 ]* P% i- G& X  W9 t
                          set h  int (g / 5) * 5  `7 H) }9 |* u, W
  setxy   ( xcor-of turtle h + x )
8 L/ o/ Y' q; ^% w4 p           (ycor-of turtle h + y ) 9 k; X) r( R& [; |$ Q
                            ]  {. \8 r: T
                          ! |2 O; o8 w3 X: m6 e7 K: n5 \
                          ]
1 Y  Z( K$ ^; @* s6 iend$ a1 V, B* v2 J
& V+ M( v& r% _% N$ W/ T
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,7 v" z2 q0 D; f
应该是2 D- Z7 A* b/ i5 n; {8 C
ask turtles [
' H1 \0 w! A* C# ]# S, y: \if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
  n$ I( T. M# H5 u6 T                          set y  Dep / 2 6 t, p; ]1 B& j( {
           set b  int (who / 5) * 56 n1 I7 n1 g1 L1 ?
    setxy ( xcor-of turtle b + x )$ W- W" H4 N- ?; E- k" C! O( T
          ( ycor-of turtle b + y )]]2 b: ^: z$ h$ |5 d
end
1 ?: w) e: D6 _; ~; U# ?: U之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-13 16:41 , Processed in 0.018717 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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