设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8665|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。/ _- Z$ D: p. N
, q4 D7 E5 Q/ L: V
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
) Q$ v- a5 I/ c/ ?+ w
- M- L0 `, M7 i1 l9 Wturtles-own [a b c d k f g h
2 q  t2 ^5 @9 z: z: j, n  x y     ;; these are the leaf-turtle's offsets relative to center-turtle . {1 Y' Q% z0 Z
]# Q2 _1 p8 c+ h' l" X- K' [
to new$ p8 K7 q; S! _& H4 p5 u
  ca  h6 g& ]' y- ?
  crt 5 * num_of_building% O8 A  N. ?& b- `4 a* [  _- y
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
! H9 q  U0 u% Z3 {4 @8 P. q  scatter     ;;keep center-turtle random positions 1 F- |* a( U3 m' y
  unit_plan   ;;make up the building plan6 m0 b- i1 K1 e3 T" w
end
9 C. i/ g& L- z, t7 T  ~% ato scatter
2 [( ?. p* w# cask turtles with [remainder who 5 = 0]
) K) N/ e6 g& z! G! p0 k4 `[
0 h/ w! D' E; y: n5 P( Z! r9 Fset xcor xcor - 6 + random-float 15
7 Y) G' a* E1 A1 A6 g3 D1 ]$ sset ycor ycor - 6 + random-float 15
+ L; [1 `1 E8 C( Q]8 n# t1 N% G- s6 n+ x+ }
end0 L% e) g9 y" P# P* p* V
to unit_plan
0 \) b* p! {3 N' uask turtles [1 _5 \- H! n0 {- T9 f+ O8 V$ \
if (remainder who 5 = 1) [set a who : e; s. I% t0 L& O  g1 U3 B; ]
                          set x ( 0 - Wid / 2 )
1 b$ w+ Z- |' ~$ J8 Z0 e+ j7 j                          set y  Dep / 2 ]
0 y$ E8 B5 v  p/ Q) w6 m           set b  int (a / 5) * 5! O& s$ N1 C5 p
    setxy ( xcor-of turtle b + x )
8 N3 c- N  C/ E3 J          ( ycor-of turtle b + y )! C+ y2 x& V8 ]' R4 A
if (remainder who 5 = 2) [set c who1 r+ n' w0 J7 u3 i9 q2 S4 V1 m
                          set x ( 0 - Wid / 2 )
5 ~4 M+ Z5 f5 a                          set y (0 - Dep / 2 )  ]/ f* |( C/ n: x3 e8 `; H; {+ a
                          set d int (c / 5) * 5& Q% z+ g5 O7 U! I; z  R5 e
   setxy   ( xcor-of turtle d + x )# q, Q! D: }& V% ]. e6 |: \2 [
           (ycor-of turtle d + y )
' k+ ^) s! e) g' j9 f         
  L& n# ?+ m! D. g" \( B! B            
! |: b9 @  l3 Cif (remainder who 5 = 3) [set k who
0 h. l+ z8 y9 |4 D                          set x( Wid / 2)  
' S7 l3 J# P/ }; `                          set y (0 - Dep / 2 ) ]3 n0 t6 w2 S; @, I4 Z* z
                          set f int (k / 5) * 5
% G+ s& r1 j$ E8 X, S& p2 X& P+ Y1 Y  setxy   ( xcor-of turtle f + x )9 }5 r& t4 |) B6 T- d
           (ycor-of turtle f + y ) , L& `2 N7 i! P8 A/ k& ^
           
2 |$ b! c: M" k) ~3 \           9 X8 v" @) m6 y* T4 V: Z+ P0 G
if (remainder who 5 = 4) [set g who
2 b0 s5 G: |# ~9 h& y6 D1 J$ O                          set x Wid / 2
; \8 c8 L/ T' P' A+ ^- y+ `                          set y  Dep / 2 ]: H, \6 O: v* w  G9 `, z5 Q
                          set h  int (g / 5) * 52 T( E& `' P& y5 p; [" c! |
  setxy   ( xcor-of turtle h + x )8 u' l; K8 h* [) j) q
           (ycor-of turtle h + y )
0 p% A, a% t4 l4 Z$ b  |0 _7 u                          
" Z5 ~! D; h6 b5 i                          " q3 i( W7 _: x
                          ]  L7 z; @, t4 M
end
9 }' E9 b* R  E
" e4 K- C5 Q1 ?  I" }[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,4 l4 v# b$ C/ e) E
应该是& ~* n& V! \- y2 i  _# z; l: D  m
ask turtles [
! ?# r! \8 `1 s, }8 Yif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) $ s5 J# |& j$ S" K- k
                          set y  Dep / 2 & M- w& m" M; I9 \) \- e8 R& I
           set b  int (who / 5) * 50 p5 R; [; O5 K7 S) {* f% h5 {
    setxy ( xcor-of turtle b + x )# z# e( C5 W6 o8 G" \
          ( ycor-of turtle b + y )]]
5 D& i( [4 Z7 L6 `, g3 l6 M, J/ ]6 dend
* @% R" S7 e5 e9 O8 V之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-22 15:42 , Processed in 0.013946 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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