设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8058|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
7 |6 V8 e6 }* e$ z' @, B8 q( V' f
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
; f2 n# J, v% @) F1 G! @8 U# x% ]2 Q/ v7 S& v3 k& t# g
turtles-own [a b c d k f g h- @. @  H+ ?+ q$ L2 P/ o
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
! }/ a# O, N, m' k, f0 t]
# E& Y$ r0 k; I' G$ S) w) G; kto new
7 E5 x+ F8 i" p5 t+ ]# Z. [  [' |* T  ca
# @) h4 h5 P, [. d  Z  crt 5 * num_of_building
0 S; u/ m5 w3 ]  a% x  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
7 _( Q2 O+ P! K; {  scatter     ;;keep center-turtle random positions 2 _. s9 G9 y- K5 R
  unit_plan   ;;make up the building plan
8 _; u4 ?; ?- d. G) _1 gend8 T; X$ o7 c$ v( v$ n& C, h5 s1 ]4 Y
to scatter
& u" O# G& P  J% pask turtles with [remainder who 5 = 0]; [+ P# u. C2 x* ]/ r& u  k% L4 D
[
/ ?# d( F1 _+ h0 ]' zset xcor xcor - 6 + random-float 157 T3 A' x9 S  K0 J+ L0 \6 L
set ycor ycor - 6 + random-float 153 c9 a% |+ Q% B2 w! D. y1 E
]* ~0 t1 _+ Y& L
end
- d( b( E' F9 y8 ^to unit_plan
7 F  i/ A7 o' C& J" P: l- iask turtles [
8 i( W& o  B; k: x; ?9 ?1 Iif (remainder who 5 = 1) [set a who 5 B; T0 W6 ~0 p
                          set x ( 0 - Wid / 2 )
! D4 r) h. u: i, E! ]( T: @                          set y  Dep / 2 ]
4 x) c" M& U% H; c! j! \8 F, m) D* z           set b  int (a / 5) * 5
0 b+ @  f5 b! j( @7 u! ?    setxy ( xcor-of turtle b + x )
9 g9 R* n$ j4 @. K          ( ycor-of turtle b + y )$ u8 z- u- C. z( ^9 a. f
if (remainder who 5 = 2) [set c who
$ X1 \: p0 h) d                          set x ( 0 - Wid / 2 )
, `# Z7 Q& L+ E. x- K                          set y (0 - Dep / 2 )  ]! S( j' b' M/ f/ B! \9 n& p& @0 ]
                          set d int (c / 5) * 5
! E. u9 l& n8 B   setxy   ( xcor-of turtle d + x )
" o! w- o) V1 d7 C           (ycor-of turtle d + y )
% p, l" @' N) {& X: O          ) R1 k8 W/ K4 I# u# }
            
' |( p  J2 _5 l* h7 }if (remainder who 5 = 3) [set k who
, p8 S+ ]6 }) @9 S2 k  S: L                          set x( Wid / 2)  
2 y! i7 r! X( T  ^                          set y (0 - Dep / 2 ) ]
& {3 n( }/ u4 M& [. ]                          set f int (k / 5) * 5/ j4 p  l; J7 q" G8 q3 k! g$ N: o
  setxy   ( xcor-of turtle f + x )
) \3 Z' U# N, J" t; Y           (ycor-of turtle f + y )
3 W9 R+ V0 q' e3 d9 y           
5 m- f7 k  x! g- o" N           * n/ m7 }/ N6 K0 u
if (remainder who 5 = 4) [set g who
+ G# M( X/ {% d) ]' t1 X6 c1 s                          set x Wid / 2 % Z5 L% v: Q* z; t( R+ d) x
                          set y  Dep / 2 ]7 e- r7 W% b+ ]0 C3 W( t
                          set h  int (g / 5) * 5
: a8 b! m' G( e' Q( R  setxy   ( xcor-of turtle h + x )% z* f& h9 Z9 z  ^# |* D
           (ycor-of turtle h + y ) # q: T  K% I3 i# r# n2 P' @  M
                          ' j8 D# i; }( \1 k/ y
                          ( m8 t' n2 ^6 [7 b
                          ]
. ?( ]6 l5 _- m, t& m9 \end
/ `; ?! j& q: N* Z( V+ X, E, G' D) f3 C9 i3 g
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
) `8 a+ Z  I( c) _" F9 \* S应该是
( Y' }1 ^8 g4 I9 K  o& k. gask turtles [
# o1 d7 E6 U2 U) v, K: ]. Xif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
0 A% \$ m# M1 F0 t) I+ \                          set y  Dep / 2 % ^8 B6 j& y, J6 t' P
           set b  int (who / 5) * 57 B. n) {; g5 {7 l* M/ ?& ]
    setxy ( xcor-of turtle b + x )
0 a: E0 i9 V0 E- ]+ j          ( ycor-of turtle b + y )]]
6 j( h. o' Y, n, Y* V1 jend
& G2 `9 U$ K, ]; h2 N之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 09:35 , Processed in 0.020442 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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