设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5895|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
; J/ O7 G  X3 [; D& F, a! i4 `# E# H' a! @% N! E4 \& x
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
4 m0 g8 F$ H5 S. E. o4 R9 m( ]7 \, L& F- a  `
turtles-own [a b c d k f g h
, w) }; m- B7 ~5 c# G  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
9 R$ B! U: x3 R]- \/ [( Y2 ]- h4 f
to new: e$ ]( f. a- G) l4 a# Y& ^  G
  ca9 I" k2 V. ~, ~9 f4 o* I, H$ G/ u/ Y
  crt 5 * num_of_building
& F; l8 d! p# c6 ^2 f2 r1 R  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]( b7 q. _8 T. P7 w6 n" ]- i
  scatter     ;;keep center-turtle random positions
) A5 [0 D: a+ R5 f  b2 ^5 L: U5 T  unit_plan   ;;make up the building plan0 g7 ^& G( y, @" j2 ~
end! a# x% A4 ~/ ]. B0 H- q1 [# f
to scatter+ y/ z" \5 {1 V( Q0 N
ask turtles with [remainder who 5 = 0]( Y* G) Z0 y+ Y* T) M" [& n
[$ k0 f) R  A+ _7 q, o: z; r
set xcor xcor - 6 + random-float 15" T# B+ ~2 m, @  d
set ycor ycor - 6 + random-float 15
' v6 i" [5 z& P/ B9 M, L) |( S]
5 N9 Q0 }  S8 D+ h5 i9 G  m: bend6 Y: ~6 Q4 ?9 O! V) j" k
to unit_plan 8 @6 @, {+ q1 b( z# F% F& e
ask turtles [5 m+ T1 f1 G7 m- v" _; H& g4 S; z
if (remainder who 5 = 1) [set a who * R/ _6 @$ D9 s: _* w
                          set x ( 0 - Wid / 2 ) - ]8 x5 o  v8 l4 v: }
                          set y  Dep / 2 ]
7 ~2 b. o/ T* j  ]           set b  int (a / 5) * 51 ?/ W+ g4 u8 }3 C: h2 A! r- I
    setxy ( xcor-of turtle b + x )# n7 ?/ b: o' E2 ^8 Q( G
          ( ycor-of turtle b + y ): ^; L; @6 Q0 l: N
if (remainder who 5 = 2) [set c who( h5 w0 K! A6 H& \
                          set x ( 0 - Wid / 2 )
% U1 k7 ^. N" [7 B                          set y (0 - Dep / 2 )  ]
( T9 W  A% j) x& r% l- ?: x                          set d int (c / 5) * 5
) M  W4 m# Q0 H% f* H  R   setxy   ( xcor-of turtle d + x )
, S1 ]$ C' K4 O. P           (ycor-of turtle d + y ) ! n9 f7 d- |3 d2 c3 b7 X) T
         
1 L  W  R* E* E2 d5 i8 ?5 t/ N! \* |            
' C4 f0 v, E# k( @8 |$ O7 s+ |if (remainder who 5 = 3) [set k who5 V) k; x/ A4 E* \; B, P
                          set x( Wid / 2)  
8 B( u, k' _- _& Y8 X% b% e                          set y (0 - Dep / 2 ) ]
- S) a" `6 }2 o! A6 |- p: H( a1 Z                          set f int (k / 5) * 5! d& F, c* t! v8 X3 s
  setxy   ( xcor-of turtle f + x )
9 n" I" r( o( U           (ycor-of turtle f + y )
/ v$ {0 H3 ?5 U* }* I+ z           0 ?3 q) S4 N, \7 J
           
6 W# Z2 C5 S+ aif (remainder who 5 = 4) [set g who
" X( R' u# d# |3 O6 [# a* q4 X                          set x Wid / 2 6 p. C9 b% z- t7 j7 I( S1 v; T9 g
                          set y  Dep / 2 ]
0 o+ U; ^# R* x5 h                          set h  int (g / 5) * 5$ R! w+ T5 {; I* ]# d7 A  D' p" g
  setxy   ( xcor-of turtle h + x )
9 q1 _" o/ i1 x9 e           (ycor-of turtle h + y ) / e' X& A0 A5 h) `( N8 p
                          5 W' P) P" j4 G
                          5 v# C% ?5 Q$ a
                          ]
* `6 g4 ^- H) j* \+ yend, f; D! I. x8 F0 M1 m% ^# Y
; j- }6 m- ]0 S' Q8 f
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,: |# a6 E$ `" f4 T0 k
应该是
( L5 h0 w/ c2 V7 r. {ask turtles [
" f' h5 y! r' F  ?0 l1 c  K/ zif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
: A) w* n9 b8 D% e: U/ j                          set y  Dep / 2
6 F. I. P& P3 W           set b  int (who / 5) * 5& k% [3 v, \( o- N' u
    setxy ( xcor-of turtle b + x )! N& y+ J, J" q
          ( ycor-of turtle b + y )]]1 W3 M) `. w8 }; j4 L
end4 w" ]8 u" Q6 m$ u, L: {
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-30 03:47 , Processed in 0.014201 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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