设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6860|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
. a8 m3 L- Q# a$ K0 F+ k- |, m+ @8 \( b0 y* J( r
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。; R5 Z. h& Z8 M: Q
( B8 s0 y$ i( S& \% H
turtles-own [a b c d k f g h1 n9 u! \: R! `. _8 L8 |& |: ^
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
$ W6 _) |  J! h; c) O) J( T) w]% }4 |. G8 y3 n
to new
) i7 I! Z- Z9 i- {* @  P  ca
: C2 D" N7 l! O8 H0 L8 ?/ N  crt 5 * num_of_building
3 y! U( |: C: H0 E" o  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]% j) B4 E! R4 R+ l5 Z4 r
  scatter     ;;keep center-turtle random positions
: u8 F/ T- [$ U  i$ i+ {  unit_plan   ;;make up the building plan
+ ?0 b1 f: z3 n5 V6 H6 K+ Dend
$ ~" w6 z8 {5 _% [% Rto scatter0 p$ K5 ?- d5 M8 \% S/ y6 ]9 k1 {
ask turtles with [remainder who 5 = 0]
3 s  a! Q8 t' U" E, A8 M[
. ]( q5 t- }- a1 F+ \set xcor xcor - 6 + random-float 15
3 m) V' ^" h' {. D) ~& G; d% Dset ycor ycor - 6 + random-float 15
7 f" H6 F' z9 _( w! O* R, p4 @], ^2 F' }/ F1 k! Z: _2 w* u
end
' ^. L0 X$ O4 g# \to unit_plan
. N" ~2 C% `' L8 x( Y" b7 Kask turtles [
5 d2 L: D5 ^. X; K1 L4 ~3 Jif (remainder who 5 = 1) [set a who
' o# ^2 L( A" V. v                          set x ( 0 - Wid / 2 )
2 S6 |& }; c: k% @; o: r                          set y  Dep / 2 ]
; ?" P" ]3 l& L3 R- O6 f           set b  int (a / 5) * 5; m" k$ H- g0 R, @# \0 R1 U3 }
    setxy ( xcor-of turtle b + x )2 J  D: q- p9 N% P. H/ W& c: {
          ( ycor-of turtle b + y )0 ^: I$ x0 o, b0 X8 U+ v; e4 H
if (remainder who 5 = 2) [set c who# j2 K, K9 f5 l3 I2 d
                          set x ( 0 - Wid / 2 )
4 k9 D7 d- ^* N( B                          set y (0 - Dep / 2 )  ]7 ?- `. Y* Z  W, u: b
                          set d int (c / 5) * 5
7 w( {" r8 p* D) x   setxy   ( xcor-of turtle d + x )6 M0 E. W$ K' a; g/ H5 O1 p
           (ycor-of turtle d + y )
; Y, x( }6 t! c         
; I6 \: [. A7 a+ ?+ Y  b; F            
% C* P1 x( K3 w' e7 {if (remainder who 5 = 3) [set k who3 E' t9 _; s& f
                          set x( Wid / 2)  
! o4 |5 o( J/ T$ T; j0 f8 C                          set y (0 - Dep / 2 ) ]
' Y8 R5 P  u" b" }+ P: q                          set f int (k / 5) * 5: e! M( B1 E9 I1 j" x7 @7 }* E% U
  setxy   ( xcor-of turtle f + x )8 ^: @" z7 |) U$ y) N# h
           (ycor-of turtle f + y ) 1 B1 ]6 V0 ^" q0 _8 G
           8 x! H0 `1 g5 E6 B: F. C
           3 }/ _6 ~2 p0 a  h
if (remainder who 5 = 4) [set g who
$ J. g" s! l  |1 g5 V- K                          set x Wid / 2 1 M; c( X, m& h) j
                          set y  Dep / 2 ]
5 r9 K8 ?$ ]1 a                          set h  int (g / 5) * 50 W1 ^9 F! O" t% o7 h9 C% [( O
  setxy   ( xcor-of turtle h + x )4 H/ h  L1 Q* ?
           (ycor-of turtle h + y ) 4 U- L- X+ L8 I$ |6 v& Y
                          # s8 r/ ?8 Z( e4 g% y' U, Y5 h4 m
                          . S6 U+ ~3 C7 I$ n" y% e3 Y
                          ]
4 _, y3 M; s- _5 A2 e+ Tend
0 V, h, J: M' G0 ^& T1 i
4 p  |! W7 K8 J6 w[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,+ {: O! ^  U: P7 F/ ~5 r2 s
应该是0 P( N7 ]8 v# G" N) a1 V
ask turtles [) W) e3 v) X- V& k& r1 n* J
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
% J! O, X  L! w  R( q  r6 y" A                          set y  Dep / 2
9 [. P5 }9 S$ s9 F" j2 |           set b  int (who / 5) * 5
1 N6 q4 ~" `* B; ^' E1 Z2 B( a    setxy ( xcor-of turtle b + x )( u6 j$ G3 k9 P3 |6 p
          ( ycor-of turtle b + y )]]4 q- w, t! e! e: P; b$ V5 C
end
$ s  K# u* W1 z6 r% ]) f之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-30 20:59 , Processed in 0.022476 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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