设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8446|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
4 C: ~# o; ~) E0 ]# e& s
# h0 h# g+ L$ `$ ^8 j8 J但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。4 Y4 o- J6 _8 R% F& O8 L

  f+ C4 a/ j7 G+ \* a' Gturtles-own [a b c d k f g h
1 L- }& ^9 d* p3 p$ L. J. X; P- [  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
# s2 m6 c9 Y; ]* _]& s3 X% I4 c5 m! }# ?3 h- U
to new
+ w7 V! x4 X" [  ca0 c0 ^9 N. d$ X9 H
  crt 5 * num_of_building( B" W8 d0 ]  G, |8 L( R
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
3 m( @( w( m! h; `( O  scatter     ;;keep center-turtle random positions
' s# y: e. w3 @( K  |  unit_plan   ;;make up the building plan3 [$ P$ a3 O) d
end& Z- e: n2 S$ A# y9 [1 B
to scatter: U. S9 S0 g1 ?' p+ Y
ask turtles with [remainder who 5 = 0]' |* u" j. j2 h1 x- p
[7 i) |: F4 i) c7 g# X* N% p( J
set xcor xcor - 6 + random-float 15
/ S7 W1 k& r; ?) u/ G. Bset ycor ycor - 6 + random-float 15
8 w0 L" [' ~: y% @/ M]  A' N# [* H% x' v( r6 ~
end
) G6 N% F/ z% K# Vto unit_plan
; c9 m0 Y" c+ W3 Bask turtles [
3 A# Q# ^$ ~- X* D8 Q+ sif (remainder who 5 = 1) [set a who 7 B9 |% U. z1 t# j1 `+ t# _, z0 C+ Z. }
                          set x ( 0 - Wid / 2 )
6 r- `/ n5 k' `                          set y  Dep / 2 ]
6 y* Y6 W! h& Q5 m0 |# V  \: x  ^           set b  int (a / 5) * 5) z1 E2 {& j" I& D. s" Z
    setxy ( xcor-of turtle b + x )9 \" _) A& U$ N9 C
          ( ycor-of turtle b + y )
4 k; Z- _# P7 y1 D! K* ?7 r+ I: Aif (remainder who 5 = 2) [set c who
6 _8 W$ F" x! c4 |/ L! h                          set x ( 0 - Wid / 2 ) $ {' j* W% [- ^# }- ~  o& h* @, Q
                          set y (0 - Dep / 2 )  ]
7 N; v4 Y# F2 R# D. X( n                          set d int (c / 5) * 55 H* [, }, }; @- _& Y
   setxy   ( xcor-of turtle d + x )' Q; z/ }& X2 X+ N# ~# g9 Q& q1 V
           (ycor-of turtle d + y )
/ g, _1 H9 q+ M, ~+ A$ f            T# F) l) l2 G8 m3 F+ d( O# Y  M! P2 ~
            
0 }* f  G7 a# i9 Nif (remainder who 5 = 3) [set k who
& t  d2 t8 ^: p" \& J: ]* O                          set x( Wid / 2)  7 k" M% _4 M0 y/ k# z1 t! o0 O
                          set y (0 - Dep / 2 ) ]
7 g; w3 ?% L0 v$ Z$ q                          set f int (k / 5) * 5
* U, R* M% u$ w; C- p( I; v  setxy   ( xcor-of turtle f + x )7 ?, T/ Y; s- F4 A0 y+ `3 ~
           (ycor-of turtle f + y )
) B$ M+ T4 t+ w7 ?8 V( G9 l           ! a9 G- p6 x) [5 d( Q
           
# F" u( n" d5 z- m3 k7 Eif (remainder who 5 = 4) [set g who6 y2 p( Z! v6 N0 C
                          set x Wid / 2 3 u- q4 A$ S* S2 |; Q8 i
                          set y  Dep / 2 ]  l/ d2 Q. s% o8 \+ ^4 ^: U
                          set h  int (g / 5) * 5
( h6 K8 Q# a* U" g% k  setxy   ( xcor-of turtle h + x )
8 \4 R- ^8 z) A& Y           (ycor-of turtle h + y ) 2 P2 g. B# z: d, R5 A& L  c
                          0 N! ^9 i2 w3 ?+ [
                          * d3 B7 F# D5 _0 V% j/ D1 j
                          ]9 [9 B9 ?# ~6 P, f
end
' y" h$ K7 K  r8 a# u
5 x8 e/ e( _# p1 o. j3 R[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
+ T3 {+ O; [9 `' M* ^3 w应该是
1 H8 f9 [3 B$ O, Yask turtles [% k0 ?0 t& g0 y8 a6 e/ ?4 ~  C8 U
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) , G9 I% d4 t# n8 O5 e& w
                          set y  Dep / 2
  R1 t# k# D6 ]0 \8 }# c           set b  int (who / 5) * 5
3 U6 M" X# a9 t$ b  M) m    setxy ( xcor-of turtle b + x )
6 L2 b% J9 t" `          ( ycor-of turtle b + y )]], _6 N2 X$ E7 O
end
1 D$ l8 `9 |* ~之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-26 23:54 , Processed in 0.012910 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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