设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7831|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
; Y) k0 g3 K/ Y& }. J9 a- e5 q$ z  l9 ]9 D
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
( X3 v) B+ J9 [8 R1 f* L& A/ |2 ]+ f) V# m! n
turtles-own [a b c d k f g h/ y9 S: |! [6 f. t: a- q
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
  }5 j; C; ]% Y) q]* g9 z( Q) d8 {6 ?1 N
to new
. t6 U$ |7 R, n4 s6 p" a1 {  ca# e( P* [7 t" w0 v" F$ S& ]
  crt 5 * num_of_building
; Y' W1 }) G0 F" u; `" h3 b4 V  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
* y/ A5 V8 m( f  W! K  scatter     ;;keep center-turtle random positions - v1 m/ K0 F* n7 D( T6 W
  unit_plan   ;;make up the building plan0 I( D* t5 }( ~6 j
end) Z0 e- l7 X- E9 s$ \! M
to scatter
# [: l& N' R. Y* C& k4 |! f' ?$ Xask turtles with [remainder who 5 = 0]" ]. Z$ o6 Z3 x0 p
[# O6 j+ Z0 X, X/ I" m
set xcor xcor - 6 + random-float 15
. m$ D& K! b, I+ r/ Aset ycor ycor - 6 + random-float 15
6 b. @5 T8 ~; ^$ P* a! U! Q]
& Y0 d' B. T3 x" N/ n5 h- j1 Y& M9 Fend% \2 Y' T& b  [6 q/ o
to unit_plan / t- M8 r7 j5 {4 T* ^
ask turtles [
. f3 Y1 D' V0 w* a4 ^if (remainder who 5 = 1) [set a who ( u/ Y' N: p! I, @/ E6 w
                          set x ( 0 - Wid / 2 ) 4 d1 r2 |; N+ u
                          set y  Dep / 2 ]' u# M  N/ \1 V: w2 q
           set b  int (a / 5) * 5
7 x+ Z7 ?8 T. E( v+ `+ }    setxy ( xcor-of turtle b + x )  ?8 M; B) N- M$ @
          ( ycor-of turtle b + y )
; F* t# r2 z3 w  o9 i0 U, x5 Jif (remainder who 5 = 2) [set c who
+ s' F8 s7 c( k' X; I                          set x ( 0 - Wid / 2 )   p: t8 g9 N+ V6 |  q
                          set y (0 - Dep / 2 )  ]5 N0 f6 h- r; S
                          set d int (c / 5) * 5
1 O3 A, g' Q7 C/ b+ t3 Z   setxy   ( xcor-of turtle d + x )
& [1 N/ ^/ o! W$ v5 t+ h1 t$ W           (ycor-of turtle d + y ) ) Q5 ^! b" |/ j: K5 U7 w" t
         
( _2 a  Z1 l7 z' X' z& E            
/ [3 K5 Z7 W" f0 _4 @6 U, u* I9 ?if (remainder who 5 = 3) [set k who
) @5 w3 b  x2 x8 S9 ~: ?0 A) k                          set x( Wid / 2)  
2 \: T, V* ~% ^) s& ~) n1 L                          set y (0 - Dep / 2 ) ]' D7 k+ ]+ |! o3 S! c7 r" |4 V
                          set f int (k / 5) * 5
% [* A; n& X$ t, i, H( p' w  setxy   ( xcor-of turtle f + x )
* ^: z- n; S/ s. e8 M* S! f& R& R9 B           (ycor-of turtle f + y )
$ P- t5 _5 p# s! `; g           ) w5 b' a4 R' @+ O. F
           / R& R" B, B+ ?+ b. ^* a( B5 Y- @! y
if (remainder who 5 = 4) [set g who+ F0 I% s6 p5 ~
                          set x Wid / 2
$ N  i9 x* X5 Q3 q- p6 Q! z                          set y  Dep / 2 ]
* y% t' C' l2 ?/ d- |                          set h  int (g / 5) * 5- }2 [! H: I4 _7 d* Y* m
  setxy   ( xcor-of turtle h + x )
" U* L+ M8 |: b% S           (ycor-of turtle h + y ) - K( `- u- d$ c' [9 L* o
                          0 ^2 }, v, ]: U8 L
                          
$ }" n) g$ K' v8 l3 }" ^: t) A* H7 R3 }                          ]
1 E" ^: b/ Q6 }end9 u) A; S7 K. L( x
: W* L% S% }- q7 q- f1 k% j0 E9 R0 f5 y
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,3 H% h. O( }& f+ Z% x0 N& V
应该是
: w6 z1 n0 I# E4 K$ `0 z) W0 Nask turtles [
: r4 G0 A% \6 k% F( Q5 Z% Dif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) - p# w# j5 e# I. e
                          set y  Dep / 2 3 F( u0 I5 T" t- |
           set b  int (who / 5) * 5
# Y& K$ n* V) [. W    setxy ( xcor-of turtle b + x )' \0 k+ G6 E2 ?$ a& B. g
          ( ycor-of turtle b + y )]]
2 q& j8 E8 u: W% }end
9 U" c( v$ O. i8 E* `; ]之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-7 02:07 , Processed in 0.016178 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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