设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7748|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
; M+ i0 U3 u/ ^; d, l, e
9 V  G" C' y0 g$ R但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
. m1 s7 i8 B- }0 a; _) y% ~  O. ^. l$ M
turtles-own [a b c d k f g h+ F  W, ?  ?/ h: H, H) |
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle * e  ~8 x3 ]7 F+ h' Q, t! ^
]
4 q. i( [1 a' I9 k3 n/ V' Gto new
" V- n6 I7 P8 O  ca( A' Y' o+ }# l. R/ T
  crt 5 * num_of_building
1 R6 x# D- S, A( j0 a4 k  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]6 {, [. C7 y$ s, F1 x- R
  scatter     ;;keep center-turtle random positions
8 d3 g- Q# k: l  O! e- o  unit_plan   ;;make up the building plan' H; s% q% ~' _
end* |6 j7 }2 D1 \5 k, P9 c- P
to scatter) P+ A/ ?% r$ l
ask turtles with [remainder who 5 = 0]7 b) R9 m# A9 U8 i6 g
[
2 _  d! d5 K$ K, c, iset xcor xcor - 6 + random-float 15
  ^; s9 P' s4 j9 D$ h$ s7 vset ycor ycor - 6 + random-float 15( t# {. g5 o1 ^# u
]9 C2 K+ K7 @. }* c3 T9 z/ e9 A3 A
end  v- V/ W( D( A5 m3 _; m) {
to unit_plan 1 z6 Y& G1 p2 |+ G' [
ask turtles [
' q5 ]3 m: U! x& t  q* Q2 ~) ]+ eif (remainder who 5 = 1) [set a who
! @0 G6 r' j. v2 {+ t                          set x ( 0 - Wid / 2 ) 8 n5 u$ X. g+ T$ @9 X
                          set y  Dep / 2 ]
3 L# f4 y6 M4 W! _/ {           set b  int (a / 5) * 5
  Y' ?4 s& D( X7 l/ q    setxy ( xcor-of turtle b + x )9 H. }( s2 y! o9 S
          ( ycor-of turtle b + y )
: e6 `! [' v0 {- A, ?if (remainder who 5 = 2) [set c who9 t' N7 s# c" J% C1 |7 L8 l. R" |* a) Q
                          set x ( 0 - Wid / 2 ) 8 Z! x1 c8 ?5 C* D0 w: X; z% i
                          set y (0 - Dep / 2 )  ]3 s$ `, r. ^, M
                          set d int (c / 5) * 5
4 F2 C- \6 I8 F% ~   setxy   ( xcor-of turtle d + x )6 c$ j! B5 p6 |; n% M$ |5 K
           (ycor-of turtle d + y ) : G! }  r& g0 {# N0 q! w2 X
         
# P$ b8 L( U. v, y            2 P) q9 A* y: V6 I5 f
if (remainder who 5 = 3) [set k who
! E1 g; c2 z* L                          set x( Wid / 2)  % D* P( _& w! b& W
                          set y (0 - Dep / 2 ) ]6 c$ z. w5 h" d4 L. H" v
                          set f int (k / 5) * 5
1 @2 X  o3 {: b- Q3 G$ N  setxy   ( xcor-of turtle f + x )
! s/ Q- \& }/ Z" ~$ p! W- b$ Z           (ycor-of turtle f + y ) 8 T: r  K; a' ]* u* X0 Z7 K+ W
           
' Q7 ^" ?9 m2 H           : ]2 k4 y1 M$ z7 x9 x
if (remainder who 5 = 4) [set g who
5 n$ `. P' X7 t# z+ i                          set x Wid / 2
/ X+ @$ t$ T, k& ^; b) S                          set y  Dep / 2 ]4 c! c( h. O: p4 ]) I
                          set h  int (g / 5) * 5
# A6 G, T! F8 j' I6 h" O. Z  setxy   ( xcor-of turtle h + x )
1 Z3 U3 |" k0 Z& ^7 H           (ycor-of turtle h + y )
$ C# }2 S2 Y( f1 Z, ]                          , s3 b6 A7 n8 R2 d7 v8 `1 t8 H  F
                          
9 Z; \# I5 D9 \3 H                          ]7 S& k' S5 O4 l5 |' y
end; f, n+ M/ \3 h5 ^" Z
" ^; s% ]' U) F0 Q" u& V
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
6 ?0 _# H0 {+ q应该是3 w% A; N4 C$ Z) J0 U0 K; O
ask turtles [
4 j. ~; K+ H& h, V4 i. Qif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
6 Q$ V( W5 x; A: u( _                          set y  Dep / 2 8 ^# |1 B( j% t9 N
           set b  int (who / 5) * 5
) u$ S" |" u4 M    setxy ( xcor-of turtle b + x )- O2 a5 c0 D6 {& m
          ( ycor-of turtle b + y )]]
5 r7 e0 Z, s( c: xend
2 a1 l' G, E: i) G之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-24 02:44 , Processed in 0.017946 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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