设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7890|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。) E! g( [7 @, C: d

( i# P+ w4 ?/ c6 |5 n但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
: E4 J1 c6 J+ ~+ c0 D$ c( i, J+ {3 x7 o, C- d
turtles-own [a b c d k f g h
" j, r) ]0 w5 s% L, X: p  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
/ v+ h! z5 {4 t1 I]
& R' \& V) D( X3 R1 pto new
# i7 H8 e4 H2 i( t/ A* u& J  ca( ]' ]6 s6 |! l. Y4 ?; G
  crt 5 * num_of_building
) e" p$ L' b; ~6 k# R: M5 X  \  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
7 W; Y# K; L7 @( ]7 s  scatter     ;;keep center-turtle random positions
& i+ ?5 h9 t: R# f  unit_plan   ;;make up the building plan
2 I7 P% z' q" f$ R* n: |end
( b/ a% e. q4 e/ k6 _3 sto scatter. L, [$ Y# Z  O% Y
ask turtles with [remainder who 5 = 0]
0 T! k1 ^, m3 b& n$ F; n3 i% @[
& P. I& |: \" a* E  K: d0 qset xcor xcor - 6 + random-float 15
1 a# w  }' a+ O) }- `/ e! g! w. Xset ycor ycor - 6 + random-float 15( r: `0 L  H  @1 B. V2 N
]% D" i6 ^: ]$ U# p8 _5 a$ M
end$ }  x  d4 [3 a/ v. o
to unit_plan 3 z1 }: j  t8 b" U4 |/ h4 o# Y
ask turtles [# i) [# d$ W) I6 o
if (remainder who 5 = 1) [set a who
' D8 [+ }+ R4 A2 ^9 V& i* X                          set x ( 0 - Wid / 2 )
% F1 Z$ k* [  |9 G/ u7 Q                          set y  Dep / 2 ]) y. H' e5 P3 D! |: o4 F4 i. }7 x- f+ V
           set b  int (a / 5) * 5+ l/ _. T$ P$ v0 F( w
    setxy ( xcor-of turtle b + x )! A9 o2 L/ u5 s2 g: x) |- v
          ( ycor-of turtle b + y )
( ]' |: c4 _8 n4 r2 l1 L8 Bif (remainder who 5 = 2) [set c who
5 S$ `9 n$ U4 _, y0 f                          set x ( 0 - Wid / 2 ) " B" F$ K) P9 f$ x, X; |' \
                          set y (0 - Dep / 2 )  ]+ \$ W: T$ F" Z' I  ~0 D8 q
                          set d int (c / 5) * 5
* ~7 h& B- E$ j! b6 R6 ~1 X# B   setxy   ( xcor-of turtle d + x )$ S, g9 B% f" X2 _  c
           (ycor-of turtle d + y )
% f5 x6 N' w1 F$ x         
. R1 i* E+ _- }5 c* k. k5 V+ f            
+ S( j( n, Y0 xif (remainder who 5 = 3) [set k who/ ^) D, Z; o& o" G! g1 g& U0 E
                          set x( Wid / 2)  
9 i# b! r, H+ h6 e% u  o' J0 T                          set y (0 - Dep / 2 ) ]0 l7 m! R' a& m. e4 D
                          set f int (k / 5) * 5: P( N# c, g! ?& T$ r9 N
  setxy   ( xcor-of turtle f + x )
: H# v+ U3 Z# Q# J/ {' O# I           (ycor-of turtle f + y ) + N# k1 K: \/ e) n+ B( C
           
$ s; C/ X2 N( g. S3 c) X& g3 q           ) ~! i* z2 D- @: F& e& I  _
if (remainder who 5 = 4) [set g who8 Z' b# n+ G: L0 [
                          set x Wid / 2
0 z  K6 H. K) r. ^# ^/ c2 ~                          set y  Dep / 2 ]; {7 u+ Q4 c+ O: B& b) M
                          set h  int (g / 5) * 5. _# r, c, r% y- i% ?5 y
  setxy   ( xcor-of turtle h + x )9 I  Z: D2 z% N. n- r
           (ycor-of turtle h + y )
/ j8 V9 Y0 s" ~                          3 `5 P' i4 f' `: Q7 t8 x
                          $ n' S9 r: m2 m# a4 U
                          ]' n2 K5 M5 Y; v0 W
end3 V' W) h- _! n8 k) I0 x. ]1 k9 b

  G& O+ G6 D+ p* x- l[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
+ M3 O: `& @0 e" n2 F, g应该是
' W: m. ]3 P4 I$ j7 T" j- z: Zask turtles [. B- e8 |1 C/ ^4 N! E) C1 Y
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 4 G3 w3 I% I! {- @+ {
                          set y  Dep / 2
; ]; i. K/ ?4 H           set b  int (who / 5) * 5" K3 |2 J5 \- L5 ]. b) K
    setxy ( xcor-of turtle b + x )- `3 N! s% \) V# w! ]) \
          ( ycor-of turtle b + y )]]. t4 ^: H- T) x7 i3 [
end
: Z# K$ F4 i1 n2 ?) Q; j之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-16 01:56 , Processed in 0.021119 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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