设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7395|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。4 k1 h$ Q' |' t+ T7 z
/ m* z4 o2 J" m+ z: Z
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
& |; B+ j1 p, q5 _: M; ?/ i) |$ J4 t
turtles-own [a b c d k f g h
7 j0 R3 h5 U' L$ Q  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ) p( E5 s# C8 y. R' U
]
" U5 t/ j5 y, X! Gto new
% f: L+ f' T( F0 ~9 `9 j  ca) x: ~8 h4 t/ N1 o
  crt 5 * num_of_building
# ^9 V. l5 d* g, B" F  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
! `3 E  ]9 i; P  scatter     ;;keep center-turtle random positions
5 h2 ?0 e9 a, D: z* K  unit_plan   ;;make up the building plan
: L- \5 U: T, ?/ p* Z3 eend! }  A+ w+ P+ O* ^, v/ d+ [' S. e
to scatter& z9 s8 u" \) d* ]% r0 M2 z; a
ask turtles with [remainder who 5 = 0]
+ e) i& {9 W' o[/ T. _2 [9 C0 L% D+ @
set xcor xcor - 6 + random-float 157 y: H2 n. L, N* Y
set ycor ycor - 6 + random-float 15
8 @9 |" O1 D) g/ n6 h) A]3 k" F1 _2 s% k, [1 K: B
end2 z: z3 u) E0 b+ n1 \$ u
to unit_plan
8 W& ^  m$ K8 r( ^2 \4 M" N4 vask turtles [# j% {$ b4 C* ]  X3 u6 `+ F
if (remainder who 5 = 1) [set a who 8 s, ~2 N+ }& }7 O7 u. j5 H' H
                          set x ( 0 - Wid / 2 )
- k7 H& R$ b% P7 J                          set y  Dep / 2 ]9 H* r& W7 d  z5 D
           set b  int (a / 5) * 5
7 R3 M& w: N  b$ I8 T1 h    setxy ( xcor-of turtle b + x )0 P4 @% z0 @$ F9 Q" }
          ( ycor-of turtle b + y ); m- r, u& x+ y3 V: s4 _
if (remainder who 5 = 2) [set c who
0 y0 n" A6 k( j; v                          set x ( 0 - Wid / 2 )
9 }! O; w" e1 [# a) w# \" k                          set y (0 - Dep / 2 )  ]7 }. F; B* C& h8 D1 ?% b
                          set d int (c / 5) * 5
" \4 x- E6 I* L" f( u7 F   setxy   ( xcor-of turtle d + x )
4 J, P2 Y+ Y  L" L' x           (ycor-of turtle d + y ) 7 a' [5 O5 K5 j$ ?2 \& L7 r
          " `9 K4 ^5 u5 i  I6 n7 ]$ r" ?
            
! X5 `& J2 x9 ]$ x8 K/ kif (remainder who 5 = 3) [set k who
% U7 X; s6 `2 a6 m- [8 P0 V                          set x( Wid / 2)  ; t0 V# r6 J) f( r
                          set y (0 - Dep / 2 ) ]) |: m/ f8 U3 v( V0 y
                          set f int (k / 5) * 5
# Y% ~: o" l- H9 E8 h& M, x* P/ H  setxy   ( xcor-of turtle f + x )
. p9 k$ M7 g7 @% A+ h           (ycor-of turtle f + y )
4 x% S% x9 \6 V/ C3 l           & ]  }. l, m4 {: r
           
- L# i( t+ q. U. H% kif (remainder who 5 = 4) [set g who/ r$ X; q3 k- E4 g3 R: k( b
                          set x Wid / 2 $ I8 v. h. a. R3 l- y9 ?/ I# ~' v
                          set y  Dep / 2 ]8 x/ b$ e; U, W8 v/ M! Q6 I
                          set h  int (g / 5) * 5
' K: N* D, b. J( G- v  setxy   ( xcor-of turtle h + x ), a/ H# F6 p* _2 M% {2 t1 l
           (ycor-of turtle h + y ) % I) o0 B5 x) r  K" U+ H
                          & O' Z0 {: v. x, q
                          / @5 p  l6 Z( B& _: `9 g
                          ]
- \1 W% P, \$ Hend
' A9 j: l! f0 b) z/ x
( h( \# R: l' }- b5 b) }! T% a5 G3 n[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,! j  v1 f" ~7 V- H
应该是7 `# k7 Q( T' V  F& C* M. S/ Q
ask turtles [$ A; F4 P' s5 a* q1 l
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) # b0 ^) x- s3 J- q) v0 I4 A/ s
                          set y  Dep / 2
" Y. F2 Q' W3 C) g0 ]' ~" [) `           set b  int (who / 5) * 5+ F. t4 }% e& A0 @7 F* H
    setxy ( xcor-of turtle b + x )  X5 c$ M  `/ ]' h3 Q5 m* u' c
          ( ycor-of turtle b + y )]]5 w9 y2 `, J- t' a( h5 c
end
# W, N! x! w- C. A" j2 Z9 ?; j3 [1 i之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-7 17:38 , Processed in 3.104080 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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