设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7565|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。$ s" u8 [' U' D' K! J! U

# P2 d, q1 E8 ?( ?2 u但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。$ R/ B: \* O; t

9 z4 D1 u; V4 m  `% ?) M; ?turtles-own [a b c d k f g h
- B' F( X2 H4 S6 F  x y     ;; these are the leaf-turtle's offsets relative to center-turtle " f0 m$ T9 `. q
]/ ]9 @  Z; b6 e
to new
) ]0 z1 A0 ~* a" a/ E  ca5 H$ W5 }5 W2 i! K- r0 m8 D: p
  crt 5 * num_of_building( C% L' w' r' }: Z
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
/ x! {) H. J0 m; P% |6 `  Q& ^* n  scatter     ;;keep center-turtle random positions ' d0 x+ _. N- w0 S  f6 h$ ^
  unit_plan   ;;make up the building plan; n( U- W1 I! ?* H" d) \6 Q( {
end3 v* e* Q% l* _- M, p+ x3 k+ @
to scatter
' }2 N) r) r9 }6 v( task turtles with [remainder who 5 = 0]3 ?4 N; _) x* U$ T* d$ y
[
) I) t& ~, O0 P" c& q9 ~set xcor xcor - 6 + random-float 15- o4 Z9 n2 f. }
set ycor ycor - 6 + random-float 15
) @- r: T; @  e! [# J# d* P]
) s; o6 ^) B, t6 N6 eend, Y) n. S% q+ ]0 [8 ~9 D1 q
to unit_plan
- w$ K9 _3 S# x1 lask turtles [
' b" W' v5 ]1 n" lif (remainder who 5 = 1) [set a who 0 T: z" y4 U2 t" i( S$ c; N
                          set x ( 0 - Wid / 2 )
6 Y$ Y' U- Q, J3 B8 ~0 o6 K                          set y  Dep / 2 ]
1 ]" D9 `( M9 Q7 i8 f# q" Z3 I           set b  int (a / 5) * 5
/ C4 X, H; c7 @& e- g: l    setxy ( xcor-of turtle b + x ), h& y0 E/ Z2 V, S
          ( ycor-of turtle b + y )' X1 V! A0 l* Q
if (remainder who 5 = 2) [set c who5 n5 d9 M9 k* J- y6 ?# R1 o7 Z2 l
                          set x ( 0 - Wid / 2 ) * R5 F0 }0 b0 e% D- b
                          set y (0 - Dep / 2 )  ]( n8 A. @- V' c+ W5 z- b3 P
                          set d int (c / 5) * 5; j: C/ P7 v* V: p
   setxy   ( xcor-of turtle d + x )& U+ _( H3 `, Q4 J: d
           (ycor-of turtle d + y )
, L$ R- H1 {# ?; h$ e+ w. B         
3 K4 C' V8 V0 [& [1 D            / V1 w2 a7 ]5 o# |
if (remainder who 5 = 3) [set k who2 I9 P( H0 J% I' J) F
                          set x( Wid / 2)  
, V/ g/ e5 h- E$ Y+ R                          set y (0 - Dep / 2 ) ], q" C/ o6 h# e
                          set f int (k / 5) * 5$ ^" R, K! c) k; y
  setxy   ( xcor-of turtle f + x )
; H* }4 M8 w, [" N6 j           (ycor-of turtle f + y ) ) z, a: m9 H1 ~. ^: A
           / c3 r' C, B$ o" a2 n
           8 ?( r$ `; G/ L- S
if (remainder who 5 = 4) [set g who
3 \$ d. B# I; s                          set x Wid / 2 / n/ O  j" N1 s
                          set y  Dep / 2 ]
' Y% E6 L+ E% x0 ~  ]8 t6 `                          set h  int (g / 5) * 5
2 H* h2 h7 @( w- G, x  setxy   ( xcor-of turtle h + x )
( p+ U7 c8 E9 Q4 ^* z8 K) m           (ycor-of turtle h + y )
( t  }5 A3 K) k                          
6 F9 }) Z5 W# E1 D. }                          
; }9 w' F0 y8 [* r" _% D7 w                          ]! P( n+ ]- [/ G6 R  j$ N& o
end
0 A, V6 @6 i$ A. C
1 K7 N" L3 p8 c. t[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
- s% r3 G# v0 _" J% F# c应该是
4 k3 u3 y( O5 Oask turtles [
+ T8 i' a1 {. i  v/ e' _9 Lif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
; H# {1 R% d5 ]* p; K$ B                          set y  Dep / 2
6 ]9 m& t. F2 ^3 R' J           set b  int (who / 5) * 51 _, [0 E! c7 \! s% p* X1 B
    setxy ( xcor-of turtle b + x )
- c3 n5 h  I9 I+ o- k          ( ycor-of turtle b + y )]]( l+ k8 [  o2 p& |1 I+ A9 m, R
end
( s; l+ m" J" D之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-27 19:07 , Processed in 0.017079 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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