设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6901|回复: 1

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

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

5 H3 J3 A7 l; _, G% ]' \2 {但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
: P! o2 s; z' O3 U* b! N0 C0 H. y7 C; Z4 `: K
turtles-own [a b c d k f g h3 G  O& }7 _- M/ x5 B- ^
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 9 z2 P- P$ D9 |& s% e
]# T: {% u/ B" B# Z$ }7 W/ g
to new+ h7 R4 T& N- V: H
  ca
& \" f/ i2 ~: u3 I1 ?9 S  crt 5 * num_of_building; h, z- q- o  {% e
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
0 J1 J# c9 S* B) h, |  scatter     ;;keep center-turtle random positions
3 ?  b% k' `& ^6 r4 D; y  unit_plan   ;;make up the building plan6 u5 Q2 E  d' B+ M" m2 t& E
end
/ N: n. k% ?/ ^- Z% l( Ito scatter
) }+ g0 U5 T. O6 H  n# R% Kask turtles with [remainder who 5 = 0]/ \) y3 q/ G. D8 ~" m
[4 b9 M" p% d8 f' q7 S
set xcor xcor - 6 + random-float 15# n$ r  G$ U" d  G0 n7 i
set ycor ycor - 6 + random-float 15" u7 _, B, f5 g" l
]
0 N- s5 s8 p6 H8 V& bend) t# d) [% Y$ u7 O2 j' O) e4 i
to unit_plan
& p* x0 [' X9 Z9 e& a( x, kask turtles [
8 L% ?' P! C1 pif (remainder who 5 = 1) [set a who ) b4 y1 c7 c% Y  V, W
                          set x ( 0 - Wid / 2 )
$ t! |! V5 j2 L5 t1 M, m                          set y  Dep / 2 ]
8 P3 m. d1 j" y, K  w1 u1 _           set b  int (a / 5) * 5
, c3 T3 T+ E9 @    setxy ( xcor-of turtle b + x ): \4 v1 S2 K* `9 `- b  M! u
          ( ycor-of turtle b + y )  Q3 m: L/ R8 w& K+ }7 g$ L+ s, O5 F
if (remainder who 5 = 2) [set c who
" r# r7 `' S" x( A( I' o8 t  p: f, ^                          set x ( 0 - Wid / 2 )
) T" U( h7 ^. \- E                          set y (0 - Dep / 2 )  ]
- o( e: d& ]( ^6 U8 |                          set d int (c / 5) * 5, Q% X5 n5 I$ I; B5 K3 N
   setxy   ( xcor-of turtle d + x )
8 @2 f0 Z  L' j) y           (ycor-of turtle d + y ) 2 b& g3 c( X5 P% M6 _/ }
          , m; B: g$ f& S
            " B9 W6 @7 S8 J1 x9 M# ^
if (remainder who 5 = 3) [set k who
( t& u, q  r/ [! ]* @5 w                          set x( Wid / 2)  
9 t! X- B9 K$ ^8 o' G                          set y (0 - Dep / 2 ) ]* C7 o- C0 m+ h: [4 w
                          set f int (k / 5) * 56 S: v' W: _1 u9 _( e  ?
  setxy   ( xcor-of turtle f + x )
& O* e% W# [4 ^+ i% |1 G* s, ]           (ycor-of turtle f + y )
2 z: q. Y& E2 P6 x' j2 p; Y           
2 b, V5 W  {. ^: U) @1 y7 k           # b( d* C4 E+ ^+ m1 {* ~
if (remainder who 5 = 4) [set g who1 W) h) t: |5 T  W* u
                          set x Wid / 2 / m. E) t" }9 `% c1 R! }5 g
                          set y  Dep / 2 ]3 k7 y/ d  D! g: ~& e5 T
                          set h  int (g / 5) * 5
4 p( e& P+ A. l% z) z1 S7 ?  setxy   ( xcor-of turtle h + x )+ r7 E# M" v$ i
           (ycor-of turtle h + y )
( n/ r; _; |9 `+ O, S1 K* x                          
( d1 e, u- O" N6 r0 O  S                          
4 f+ ~2 x: C" q5 I                          ]4 W- O* |, ~  \* K8 J
end0 `) T' f4 U' e- n2 J
( K- \; X  G! I* O1 c; f9 @6 g
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
7 _, _) x) Z9 ?- n) P1 M应该是) N% p' |; n* e* O( w! W1 D
ask turtles [
0 w) Y' Q: I4 ?if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
, j% U5 V2 ]# O8 m$ {) p4 y                          set y  Dep / 2
* t, _1 r/ H; h+ k           set b  int (who / 5) * 5
+ }: B) c! b6 C& T, q! `    setxy ( xcor-of turtle b + x )1 M/ o+ J1 _" L% M4 r9 J" Q
          ( ycor-of turtle b + y )]]
2 c7 j: C: n" `end
' O% @) o. @: A. ^  A+ y$ I之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-7 23:58 , Processed in 0.017047 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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