设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8398|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
; z# r' P& ^: s. v' v: ~# E/ O  m1 b  k" Q7 }1 J
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。9 a( R0 i+ w2 c! o% s0 Z
/ k4 y/ U+ @/ l. S
turtles-own [a b c d k f g h. p- I; _0 _4 h! r/ y  a6 G; F
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle " y, u; z# z  [4 L: {% H
]: P' a' }6 |' P) j
to new1 h* s/ t. W1 G9 G
  ca
7 m4 F; @) X9 @9 B' ~# ^9 d  crt 5 * num_of_building
! }* ?8 u5 \1 F+ M/ J, b- d: s  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]- X- T' P: _4 I* }
  scatter     ;;keep center-turtle random positions - Q* x- m! f$ }) {' J- S% k2 l1 l) \1 s
  unit_plan   ;;make up the building plan
- U) K2 n! S/ m" N" p1 ]3 Gend
* u3 @: ?  E: I# h) ^. p- G' Eto scatter& w' b1 {4 h1 S
ask turtles with [remainder who 5 = 0]  c2 C0 [+ g6 q; F( w. E
[
9 s) h! @( ~& J7 J0 `" ?* ^5 u. }' Rset xcor xcor - 6 + random-float 154 y# V) n% Z# x5 ^" p. `. _
set ycor ycor - 6 + random-float 15% C" ~* H3 P) s0 [3 ^% U, r- X2 g. L. D$ @
]8 |8 l; c0 W* Q# J
end
' |3 c6 n- D2 ^) b% v$ cto unit_plan
7 d8 {- t5 \! K* w, }& Bask turtles [1 I, R6 s" A: n; s* ~' m) n5 Q
if (remainder who 5 = 1) [set a who
+ k8 Y  {4 i. J  @, i4 l# j* ~                          set x ( 0 - Wid / 2 ) - v4 s" @3 U9 P, I4 }# x) T
                          set y  Dep / 2 ]& ?" A: q9 ~0 |0 W
           set b  int (a / 5) * 5
& Q7 n! }  v9 F' u    setxy ( xcor-of turtle b + x )7 o9 R9 a5 I3 U
          ( ycor-of turtle b + y )
1 u; F1 o( U9 S  mif (remainder who 5 = 2) [set c who
+ H6 c! O# @/ P# h5 Y. L                          set x ( 0 - Wid / 2 ) & V6 ~1 a7 I3 Y3 A
                          set y (0 - Dep / 2 )  ]
  c+ B  ~" S  ]- Y* D                          set d int (c / 5) * 5
  J. b. X* @$ `) K5 g+ t   setxy   ( xcor-of turtle d + x )
2 g. U& G0 A, U( `. ]5 h) K# p3 G           (ycor-of turtle d + y )
0 F* r8 x' B) h- D          ' ^3 \" U* r+ H( v: s2 I+ g
            
) z+ l" `& }/ `. U- I+ Vif (remainder who 5 = 3) [set k who
. B! q" V9 q! T                          set x( Wid / 2)  
3 u. {2 T( ~. `                          set y (0 - Dep / 2 ) ]
% G& |: R. j+ l* }                          set f int (k / 5) * 5$ Z: Q# U- y, b# ^$ a
  setxy   ( xcor-of turtle f + x )& \0 u% r5 x& G; z
           (ycor-of turtle f + y ) . z% o& K7 h) K( q" M" C
           9 `( v3 _$ S9 t4 r2 g2 x) o
           4 M  l8 C* c! L& t! B  h, Z
if (remainder who 5 = 4) [set g who
3 [% q+ C, b: u; k! {) l# P; z& C  P                          set x Wid / 2 - @1 i. N) ^; |% f; ]4 ~0 \0 W
                          set y  Dep / 2 ]
( b6 g5 R( v. f! B% v) E; u! Y! s) j1 V                          set h  int (g / 5) * 5/ Y$ [& `1 p' n+ k4 X7 {" W7 [
  setxy   ( xcor-of turtle h + x )% W! b6 w1 t6 m5 ^
           (ycor-of turtle h + y ) 9 q/ n# G$ Q, B
                          + D: x; `& U# j. }/ B8 C
                          $ f; S0 M7 }4 W  X) T
                          ]
% z% K# H, N8 g  s- Cend
9 U5 J+ \4 N9 X: I3 K7 C' N1 u3 _
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
  e1 y: O8 K) m+ y应该是( @  `, g) Q; j2 Q
ask turtles [) K3 k/ n) J9 \
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 6 _) x9 k* }4 ^! w! ?, z
                          set y  Dep / 2
% K0 p, \4 L6 P  C! e! I4 o& p           set b  int (who / 5) * 55 V* i& q. r' @9 W
    setxy ( xcor-of turtle b + x )
# i. Y, m/ N- ]7 u$ C  w. K, Q% P          ( ycor-of turtle b + y )]]
) f, l' A; ~$ X/ d3 |! l: fend0 K( P, V. {' Z: t: L
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-19 17:23 , Processed in 4.242683 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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