设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8091|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
% ?0 @/ c6 @6 Y. O! t" o
4 J( V2 }/ ~/ ]. R9 t- @3 B但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。, H4 ]7 t/ w: U, _& W
: P, F9 p* A" w* T  g5 k; f  A
turtles-own [a b c d k f g h/ y- k: @2 f8 ^8 g6 _! m
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
# Z  g$ y  Q: j: e8 [& []# S  X( }2 v' J+ O+ M5 A3 r
to new
1 E9 j- B- ^2 F0 {: k  ca$ k- x' C! K* ]: E8 Z
  crt 5 * num_of_building
3 i+ @: H$ t: e: g1 q: p  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
. E5 y1 J9 N% X0 _0 K  scatter     ;;keep center-turtle random positions 6 @; U8 W( R4 e" q  v  ]
  unit_plan   ;;make up the building plan, d2 W5 W8 w$ E" D
end* U& V( T; s6 ~7 d6 n
to scatter2 `+ V5 N, D2 Q; {
ask turtles with [remainder who 5 = 0]( }2 w% r3 C9 j4 w- H/ \# V
[1 w5 W5 m) Z, `/ R; B+ D
set xcor xcor - 6 + random-float 15
; U! D  m* h8 C% r: Dset ycor ycor - 6 + random-float 15- ~: c2 A1 n  b: E6 V
]8 x5 I" Y2 U" g+ ~% {# [' N
end
0 O3 ^* i, i. L* lto unit_plan 9 L' m+ @, E% o1 U2 }! F
ask turtles [+ p+ s. S! o" x% h7 E
if (remainder who 5 = 1) [set a who ( h$ D! U# U, }. F
                          set x ( 0 - Wid / 2 )
. K, e( ?% W: [( k% t! _                          set y  Dep / 2 ]
! ^# T5 N' m; q3 t" M: Q           set b  int (a / 5) * 5
3 g' @7 c1 \' M# ^/ R/ f    setxy ( xcor-of turtle b + x )
( @6 \7 |( w( n; G1 B          ( ycor-of turtle b + y )9 x4 i0 z+ s3 ]
if (remainder who 5 = 2) [set c who
1 t: L0 M1 `# X: w9 Y8 }9 A0 u, h                          set x ( 0 - Wid / 2 )
. g4 W  R- L1 I1 P, a( w9 q: A                          set y (0 - Dep / 2 )  ]
9 j) e# t) s- {; w                          set d int (c / 5) * 53 \; {9 m- u% J
   setxy   ( xcor-of turtle d + x )
- s: `2 f$ N; d+ w           (ycor-of turtle d + y ) $ B; g4 W* J1 W4 v/ L1 _
          * e: H. p4 {% X- }; I) M
            
6 Q' ?! j% \( t" k/ y; |if (remainder who 5 = 3) [set k who1 M( L9 h& R: `# b+ W
                          set x( Wid / 2)  
. j$ ~" X; b, r4 j                          set y (0 - Dep / 2 ) ]" f& r) `& G( a, A, P9 ?. Q8 M0 F
                          set f int (k / 5) * 5
% Y# h2 |) v. @) X  setxy   ( xcor-of turtle f + x )
' U7 ]1 ?/ [7 A* ?$ r( O9 a. W8 i           (ycor-of turtle f + y )
& b6 ~  u7 C, F* w5 T) r           : A0 P' _4 q+ ~- @) Q
           6 `$ t( E1 |6 \$ t5 p( R, J; G
if (remainder who 5 = 4) [set g who
4 F- b* F* Y, z, m) b) Q# R: }                          set x Wid / 2
2 R% g0 O# R6 `& \* v% j                          set y  Dep / 2 ]$ ?! M, f+ C( x6 r4 [) E+ h' H
                          set h  int (g / 5) * 5: a3 B8 Z* y4 N; p- e
  setxy   ( xcor-of turtle h + x ): J% P+ x6 f3 H" X" `/ T& f
           (ycor-of turtle h + y )
, h! Z6 L& ^2 f                          
  i2 e% ^0 p. Y2 s                          
! T* d  _3 ?) o: q' R9 }) a                          ]6 e8 n8 `# \) c9 S
end
  |" _' G8 J* C$ j3 a
! P6 l. }% k! i/ \! ][ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,' H1 S+ t$ r; y) O5 J- K# f
应该是3 b: p& a) _* P# @" z+ f" F
ask turtles [: R5 n& x4 J' h8 M& Z' r( O
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
( v3 R& ~  ~/ V- c                          set y  Dep / 2 4 b& F! U& V4 Q3 x3 x% r
           set b  int (who / 5) * 5
2 m) M. n' M. M6 T0 e1 Z+ [) }2 H. W    setxy ( xcor-of turtle b + x )4 S) b  L. P3 k) q: d
          ( ycor-of turtle b + y )]]. k' \% P: u% @8 V/ C
end8 p2 O; h# L% }; x1 G" d* E
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-6 18:19 , Processed in 1.982708 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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