设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8217|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。9 s. V: a, d5 _) Z. K% N

# p: g. [/ j, E+ E- ~% F但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。: ]( ]2 `) V  Y3 q, ]
) g( }% r! X0 z3 h  k- h
turtles-own [a b c d k f g h
7 M" X/ ]) \* Q8 I' d) m3 f5 Q  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
( @# `1 P' o+ {- D" y( E9 ~  m]
1 `/ ~/ _8 L) d) D6 v3 eto new
+ s  i' q5 b* \* G  ca
  X9 X2 v4 N, Q" |  crt 5 * num_of_building4 R2 D4 \  F2 s9 R) q& y- g
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
' X' S0 C! p+ d" k* U/ B& p  scatter     ;;keep center-turtle random positions
2 T& A6 ?1 b1 d* \4 E+ j* i0 n* H  unit_plan   ;;make up the building plan
. E# u) A" X3 Z3 ]+ ]end" z& f/ ]/ T  B4 R6 f
to scatter
5 U6 F8 c* W9 c+ W- ]ask turtles with [remainder who 5 = 0]
% O, J- ?, d+ a0 G$ l[
  W5 u+ S5 _3 i, e( P7 r; Z4 |set xcor xcor - 6 + random-float 153 t1 o: P1 f) A  Y- D, o
set ycor ycor - 6 + random-float 159 R) Y; n  V* Y
]
1 V$ _1 Z0 G# }, Dend% k$ m. ~) u3 x+ g) _8 R
to unit_plan
/ ~' w+ }: e" P8 a5 H* ]ask turtles [
3 |" L4 B# h$ L7 |if (remainder who 5 = 1) [set a who ) U4 v( A- u4 ?" ?/ {8 \
                          set x ( 0 - Wid / 2 ) 8 L8 z6 k8 f7 @
                          set y  Dep / 2 ]: O/ k1 }! U! z' h2 t$ }
           set b  int (a / 5) * 52 D2 p& ]9 [0 B) p
    setxy ( xcor-of turtle b + x )7 {4 h6 w! r9 J( R
          ( ycor-of turtle b + y )
/ n0 K9 R, H& C3 m$ n# a, Fif (remainder who 5 = 2) [set c who
$ g* M  X% _6 N1 g                          set x ( 0 - Wid / 2 )
( L/ E0 u1 W& @) q; C2 ^# v8 c                          set y (0 - Dep / 2 )  ]4 s1 W" c: z; l  [/ s
                          set d int (c / 5) * 54 J* v% S6 |! y6 Y5 p- x
   setxy   ( xcor-of turtle d + x )
# ~2 a3 h  T* g           (ycor-of turtle d + y )   J% ^, G: |- R. t+ c! O
          0 X. E& K" F9 @/ p
            2 p* I! }  u) A* N) c9 }; @$ j: ]
if (remainder who 5 = 3) [set k who
1 Z! K$ f7 i3 B) {8 p% I0 m! s                          set x( Wid / 2)  
1 n1 j" W, w9 `                          set y (0 - Dep / 2 ) ]
! x0 @+ Q" ]) H0 d- m4 Y' b5 K. m                          set f int (k / 5) * 5, `/ l6 x0 k5 K3 b: V9 |. A
  setxy   ( xcor-of turtle f + x )
) s2 F. V/ y/ C5 f: G           (ycor-of turtle f + y ) 3 v7 [% |) g2 f! _, C
           / N3 u) \6 ]3 i7 K
           6 p3 V* U$ g  V
if (remainder who 5 = 4) [set g who
' y2 d. @0 E* L/ j6 |" m( ^8 `                          set x Wid / 2 + y) s/ o6 t! k, j% {& x) z  X# Y
                          set y  Dep / 2 ]
( q5 d4 c" W$ i9 K  Y                          set h  int (g / 5) * 5- C+ v5 }" T; B
  setxy   ( xcor-of turtle h + x )4 G' z2 x5 F7 D
           (ycor-of turtle h + y )
7 R8 M  k1 m; K, V% I                          
8 G$ B$ z& H( m4 ]                          
1 S( ]2 I$ j+ v/ H9 Z                          ]  V, v+ Q& A3 u
end
6 [* C; }) k# }6 Z0 I; W' Y  v  C: O. n% R( x- y
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,/ Z+ {9 y  m/ N
应该是
% [% @$ a* X( _& d9 ?% A% y4 I" I: Dask turtles [2 t) M' k- O6 G* Y5 J* u9 [6 e( o! a
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) / _) r- O' P. w3 s  s$ p8 h8 g. @
                          set y  Dep / 2 7 K  S; ]  o5 c. F# [, a0 F
           set b  int (who / 5) * 59 m0 L+ N* Y1 ?; q$ Y9 B
    setxy ( xcor-of turtle b + x )
7 C5 U' A  x. l          ( ycor-of turtle b + y )]]
3 Z7 i& ^: W- r6 a' t& ?end
# p) A( F! l# c之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-20 06:19 , Processed in 0.015038 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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