设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7688|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。# t7 F) B0 n- P' `( J, [$ m

: X7 W* Q+ ^: g2 u, W但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
% j. W; j5 Z1 S' ?
* k" R! Q( I- G( Zturtles-own [a b c d k f g h
3 K3 X* D) B- C- `% d& y  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
) x$ U* v' y/ u' Q1 G. }' I], y1 _4 n, h1 p8 d- o# v) M7 u
to new
9 V  Q, S) x7 a% a+ s  ca
/ S/ \' _. l' x2 W% R  crt 5 * num_of_building
% T2 F9 u. C' w; k& X  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
1 X( P+ u" f3 q9 _4 W5 P% g  scatter     ;;keep center-turtle random positions
2 h4 t) E$ u' i# }* o8 B% t  unit_plan   ;;make up the building plan
7 i* d- S1 d+ n: V! u0 S4 ~# send
+ ~" S/ g2 [4 b+ U# U# Z% Yto scatter
- P- M/ K  U4 q( b  Kask turtles with [remainder who 5 = 0]
4 I5 E7 v2 R/ N6 ^, P[1 w" j7 P+ V/ z: w$ v6 v' X( |2 U
set xcor xcor - 6 + random-float 15
5 z  e* m2 C% ]4 c$ E! Y0 ]set ycor ycor - 6 + random-float 15
5 B1 Q* E, f$ L- m6 B]6 q% }4 U2 t  t$ u$ L
end# @! P& i3 K1 u* }! K( `
to unit_plan " w- Y+ }9 S! [/ n1 n( j1 e1 c& w
ask turtles [
: }5 q7 A( i9 o0 Nif (remainder who 5 = 1) [set a who , j5 x0 L  p1 a7 n4 H
                          set x ( 0 - Wid / 2 ) . H# |" ]' r/ [  W
                          set y  Dep / 2 ]  E: [2 J$ x) L' t3 d" C
           set b  int (a / 5) * 5
7 F( B( ^' \. E. w. A  q    setxy ( xcor-of turtle b + x )7 x) `5 H3 c/ l& B: @$ l5 ?# A6 d
          ( ycor-of turtle b + y )
7 A0 m1 V" T2 B2 ]if (remainder who 5 = 2) [set c who# o0 g/ h& [' G! ^& U1 e1 q# e
                          set x ( 0 - Wid / 2 ) & N  R0 z  _' D
                          set y (0 - Dep / 2 )  ]
/ f& t9 T8 `, c/ ]                          set d int (c / 5) * 5. {1 x* N1 ^( i0 W8 B& H' X
   setxy   ( xcor-of turtle d + x )( f4 V6 d- K8 c5 T  J
           (ycor-of turtle d + y ) % c2 `" S3 |( I/ ^: t
          + J/ A' c2 }7 }; N* G$ q% i8 o" h
            ( S- R4 M4 r6 {
if (remainder who 5 = 3) [set k who
% T/ u/ w$ j" @; P* c  \                          set x( Wid / 2)  ' w6 C" j# b& f9 E+ w
                          set y (0 - Dep / 2 ) ]# L; e! e7 _- g3 U3 R; p! t
                          set f int (k / 5) * 53 L; R; X: ^5 s3 f# g* f( q( Q  l7 Y
  setxy   ( xcor-of turtle f + x )
( k3 M. p: u# T0 F* t. t& `           (ycor-of turtle f + y ) ! F6 y2 m$ g3 b# u. Z* |5 Z
           % g) q6 F: |( N' P8 n1 x  h
           
+ U% O: @3 \8 o: O) V" Uif (remainder who 5 = 4) [set g who0 F: K5 @8 l2 V; u( |
                          set x Wid / 2
2 D3 {, T# H6 {" g1 N                          set y  Dep / 2 ]
5 o3 `0 H/ B5 E; _& W                          set h  int (g / 5) * 5
+ H3 g& E2 q9 ^7 u! a! l' `  setxy   ( xcor-of turtle h + x )! s9 c0 Z. _' W9 i* n
           (ycor-of turtle h + y ) 3 [8 h6 L+ |; {
                          7 M: i. K5 x/ x9 T) b8 ]+ p
                          
" K! N+ ]8 s. Q  Z8 Z                          ]# ]0 k- s! Y* g4 v& x0 [' K0 r3 ?
end
. M% ^4 |- `& y8 u; J$ N( V& T' W3 A( h
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,# \3 j& J8 H; H) C" e0 q
应该是1 c! n1 u3 D- p
ask turtles [
0 Q0 [8 x4 B, a1 Kif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 1 G+ w, ~, [" E+ V
                          set y  Dep / 2
) f8 _  X! E/ N) k           set b  int (who / 5) * 5
6 R# F4 R' `2 H1 \; `+ h8 L    setxy ( xcor-of turtle b + x )8 Q# l) t* {* X2 @
          ( ycor-of turtle b + y )]]
: S, k# j' l5 t$ _) w7 B+ b) f! @end
! h7 @5 I  m. B. f& T2 \- K之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-14 19:03 , Processed in 0.015490 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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