设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8948|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。/ F# g1 u& [1 N+ v5 ^1 r
/ y" s2 F  `* j! d
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。* o( J' q* I& {/ n
4 U- W% d8 W$ x( Q7 i
turtles-own [a b c d k f g h2 H+ ^1 I4 C8 F8 Y! h& Q0 }
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ) z0 Z( c& i) X( [, C4 \' M
]) X+ H/ b6 D; V) u4 a9 @
to new
: J0 _4 F6 o" Q( ]- x2 \  |  ca
0 a4 A7 _, {1 N5 d) t  crt 5 * num_of_building! x, w# ?9 ?, m/ P! h
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
  O3 T. c, W( r% }% V! ]) k- q: R  scatter     ;;keep center-turtle random positions 2 @! k' k$ o* e2 W5 D* z
  unit_plan   ;;make up the building plan
1 k! F; s5 R+ {end. T- z/ x) |) V0 {. Z& s, i6 ~
to scatter
# Q; ]" g! X! J* M9 u1 L' J3 hask turtles with [remainder who 5 = 0]
' O. q9 e! g# h[. @: T4 W1 `1 r# O5 M5 f$ `+ r
set xcor xcor - 6 + random-float 15& {" y' [! r$ A0 ~) W
set ycor ycor - 6 + random-float 15) N3 J- x( L2 ]' R. V  W- E
]
# S+ P1 ?7 w. Q: k' M$ u6 G5 V% r- Cend
7 @4 u. a$ D3 s( dto unit_plan 7 v0 Q$ r2 h/ S! ?
ask turtles [% |0 I8 }4 q" a* d' }
if (remainder who 5 = 1) [set a who   Y3 x# J" k% t
                          set x ( 0 - Wid / 2 )
/ `  `7 g9 M, `3 d" i2 H                          set y  Dep / 2 ]
1 ]7 Y/ b4 M/ h+ H           set b  int (a / 5) * 56 c5 z. Q; k1 n
    setxy ( xcor-of turtle b + x )( x, v: L' k1 y. V8 [4 V4 w) t
          ( ycor-of turtle b + y )
( n) [! x+ u' j6 oif (remainder who 5 = 2) [set c who3 s6 U8 C3 r' v" Y- ^8 O# Z
                          set x ( 0 - Wid / 2 )
: F3 @% Y& J$ o$ s                          set y (0 - Dep / 2 )  ]. K0 U- R) e# A+ M
                          set d int (c / 5) * 5
- q* a3 b, P& v3 x   setxy   ( xcor-of turtle d + x )/ f7 S4 {: E- O4 q
           (ycor-of turtle d + y )
1 l) N8 H5 N! m4 J          9 _) {5 z9 R  q; {2 f; Y$ |  L
            
/ p3 v% f( l$ f. Z% Y# eif (remainder who 5 = 3) [set k who
' J5 o: i0 Z# I7 S" r                          set x( Wid / 2)  ; w( u6 n1 M" ~! o8 ]: j0 K1 [
                          set y (0 - Dep / 2 ) ]
' ]+ f  w. y2 Y  Z+ Q                          set f int (k / 5) * 5/ Z8 @( u8 z1 @8 D8 B, L
  setxy   ( xcor-of turtle f + x )
; W; V& P- V) w) k( J2 F7 E: K           (ycor-of turtle f + y ) 7 B4 m# d* Y5 y! |
           8 u$ r* e" K% [
           ( q# }! ]. e% m  ~
if (remainder who 5 = 4) [set g who; ?1 U9 J( i/ N
                          set x Wid / 2 ; w, m6 u. |+ k9 k, N' z% x
                          set y  Dep / 2 ]$ U2 @$ b- ~/ m( t( @
                          set h  int (g / 5) * 5- X; |  n5 o  C1 o* }
  setxy   ( xcor-of turtle h + x )
( e8 a5 O3 U. K% Y' x8 u# e           (ycor-of turtle h + y ) : i3 d. a& Q5 q  n
                          
' X. z. k( I2 S" d                          
' u7 p0 ~0 |) u                          ]* _9 s6 B7 `. \- k  O! z  E" {" V
end3 J0 x0 \1 F* L0 J  ~

* v7 c" C3 F- b[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,- X+ X, {! y& p5 i3 S
应该是
+ L: P7 M- o" E5 {) }! cask turtles [
' r% T3 l: K) r- U3 q: k. v) Oif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 1 M9 @, j7 p1 d6 B
                          set y  Dep / 2 * X1 O: x% \# V& n8 U* b5 c3 I
           set b  int (who / 5) * 5( x$ J& _' {& _( X$ ?: ~
    setxy ( xcor-of turtle b + x )3 n# o+ Z4 J$ `  E) @5 d! w% {
          ( ycor-of turtle b + y )]]0 ^: |$ u6 C4 t' U3 `! E; c
end" U" B4 O5 k9 ~, Y& Q. M
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-29 01:04 , Processed in 0.019575 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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