设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7137|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。* H0 E# S' P1 Y+ R/ |' q* W/ a. E9 a

- g5 W. [6 T) l但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。5 J9 A% P4 F  |( a
2 F& y: M. y+ r# l5 W+ P' R5 n
turtles-own [a b c d k f g h' v$ q- ]: I/ T  U6 c. `5 b. k6 r+ Y
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 0 ]9 B. v8 I& F
]
3 C! i3 L- y  G: m9 i+ [* Mto new: E0 B5 Q; ?; Y) y. V& I, |
  ca3 q$ j3 `. L0 ?8 g9 a$ V
  crt 5 * num_of_building& p' d# |8 G( O/ A/ L
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
# u2 I7 }$ p& q& d" {' z' i: v  scatter     ;;keep center-turtle random positions 0 U9 y! e/ w6 y8 L
  unit_plan   ;;make up the building plan
6 |3 M' x- Z. D, w: oend+ c# }6 B5 w7 b5 H0 F/ |8 N9 Q" Q/ s/ v
to scatter- @( {2 z* a$ W$ r( _2 w  K
ask turtles with [remainder who 5 = 0]
, |* s, L1 v* p2 q[
, d$ O* w( R3 d2 gset xcor xcor - 6 + random-float 15
9 Z! X$ p5 D+ O5 s7 p5 q; rset ycor ycor - 6 + random-float 15
7 E/ G/ w/ t, E+ U5 x]
# D- [+ ~9 R( \end" F8 V6 L: |3 I' P( b. ^! r
to unit_plan 5 Y' l( H+ i4 B; o  Y
ask turtles [
7 l0 y) \  V4 y- t' C8 X) kif (remainder who 5 = 1) [set a who - f& \: \* N4 g1 L3 k6 b
                          set x ( 0 - Wid / 2 ) ; \6 G: v1 ?3 h* N3 W  {& t& j
                          set y  Dep / 2 ]. F- P; ]9 X3 ^* Y; a# o, T
           set b  int (a / 5) * 5
( D& a2 T1 j1 W6 |    setxy ( xcor-of turtle b + x )4 r! T5 B; [5 L) k. V9 \2 C
          ( ycor-of turtle b + y )
8 }  {0 e/ t$ ]# \$ yif (remainder who 5 = 2) [set c who* N" U2 f3 Q9 K& M  k
                          set x ( 0 - Wid / 2 ) 6 L( I' d8 {+ E& S4 e+ c$ ~
                          set y (0 - Dep / 2 )  ]" A1 f* a  O2 X' S- ?( \
                          set d int (c / 5) * 5% H0 g$ P- ~; v/ D: s4 ?. ?
   setxy   ( xcor-of turtle d + x )/ D* `. T, b+ Y, F! f
           (ycor-of turtle d + y ) & ~) B* B% z9 u2 q- p
         
7 w/ B( J, ?) D            * L  ?6 O3 C7 M2 y$ s
if (remainder who 5 = 3) [set k who
. r4 n/ A+ Q8 `1 s                          set x( Wid / 2)  
5 q( @! t$ G* Z8 r! a# ]                          set y (0 - Dep / 2 ) ], A2 d' w$ t: k' c
                          set f int (k / 5) * 5/ ~$ }3 H1 Y% Z. X, W
  setxy   ( xcor-of turtle f + x )' O6 \8 Y1 G0 r1 P0 [. c( z
           (ycor-of turtle f + y )
. B6 j8 h! g8 c& [1 t           
& r: p. B* ^) t           
0 [1 ?1 j* h9 C. {) kif (remainder who 5 = 4) [set g who4 B0 D5 C- n2 m( i  n
                          set x Wid / 2
! b- E$ N* C( }3 ^+ d                          set y  Dep / 2 ]
. E6 l+ B/ Q6 a. c: u7 [                          set h  int (g / 5) * 5$ U9 C9 v' e  X* J: c4 {, ^
  setxy   ( xcor-of turtle h + x )2 e+ U) D6 m3 q3 v- D$ N" ?2 t
           (ycor-of turtle h + y )
, r9 `4 C$ V+ l5 ~8 d( X                          
9 z+ C! ~+ X/ |, ?" f$ g                          + f9 W  u  f8 m5 H4 g' {/ |
                          ]- t3 ^1 a" E) J7 |
end
3 ^; y6 T' _% `3 R6 T
6 V9 L  E5 c& t[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
( G" F1 y3 }; u0 G; I& N应该是$ a! V- Q5 E* F
ask turtles [* X- z$ E6 R. h% d" |) {# ~
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) % a0 l% ~% e7 A- t2 j  F  p) }
                          set y  Dep / 2
6 C7 |) T* R& I: [! N3 X6 a           set b  int (who / 5) * 5
; v( h' V9 ]+ a. F' |4 D  @( ^    setxy ( xcor-of turtle b + x )
6 [$ c% m2 S2 ?/ i/ i1 f, |8 T          ( ycor-of turtle b + y )]]
0 Z- `4 J" r5 W/ t( t0 jend
. V8 [- I) n! r: `( K; M& E3 n% j" E之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-4 09:09 , Processed in 0.024267 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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