设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8054|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
' K  g4 `/ y: t- q: r* Q' A; U) F( T! D& G4 Y5 J
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。7 h4 R+ F( \" |0 d5 G& f
' ]( @0 y3 ], y7 }+ X  l
turtles-own [a b c d k f g h- C, Q8 C1 e9 ~9 U& ^
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
, M0 f$ f3 R9 C+ R1 i4 j2 D( c# p]
9 n  ~( r( r3 A$ {& Vto new
; ~! \! Q) h0 o+ V  ca+ {" \  Z. O0 |; q2 T
  crt 5 * num_of_building
( y! V& t( n8 H/ m' u" O; D  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
& N$ \) V" u% ]( V! A  scatter     ;;keep center-turtle random positions ) c2 ]* s. E$ O. \1 i3 i, o2 ~* r
  unit_plan   ;;make up the building plan
$ N6 Z$ C3 e; C7 n' M8 ?end
; E3 u2 e  b0 l: Y& s1 K/ x  gto scatter
* J$ [' e$ @9 _) ~ask turtles with [remainder who 5 = 0]
( a/ a4 w! d# ^1 g% e: _& s[
/ a& m* M: H9 w8 Jset xcor xcor - 6 + random-float 15
" i0 R7 {( E! D" r8 ]- E" U5 _' Uset ycor ycor - 6 + random-float 15* s* o4 Z/ `, {$ F" @
]4 M' X, }: R/ k
end0 d' X) G  p6 B
to unit_plan 4 O  f7 r# r) z- b
ask turtles [
' g4 t8 S+ `( s; @" N& m3 cif (remainder who 5 = 1) [set a who
! V* D# U9 m9 b! ]. Y) ^4 }                          set x ( 0 - Wid / 2 ) . N! ~( f$ c0 |; d
                          set y  Dep / 2 ]* x1 G2 f. _3 f3 P$ C9 ]5 [
           set b  int (a / 5) * 5  n4 D: l2 L2 \8 G
    setxy ( xcor-of turtle b + x ). a7 ?  E: z/ g
          ( ycor-of turtle b + y )
) A% X/ @. O: I' n  ]$ o+ u1 qif (remainder who 5 = 2) [set c who" y( B( _  o3 W0 m' c2 W7 Z
                          set x ( 0 - Wid / 2 ) $ |0 U8 |1 L: M
                          set y (0 - Dep / 2 )  ]
+ o7 u( P% S! h9 q+ m+ F1 {                          set d int (c / 5) * 5+ h( ^0 y& S( B0 M1 h# o
   setxy   ( xcor-of turtle d + x )0 Z0 \$ U/ H7 Y$ H8 L9 T% ]
           (ycor-of turtle d + y )
: Z1 X' k8 A, P         
4 f9 q- [  M$ ], M7 S- x            8 A: Y, m3 N) z9 A
if (remainder who 5 = 3) [set k who# m7 s  H* L1 n5 s
                          set x( Wid / 2)  4 x0 w9 c6 N* @; {% X
                          set y (0 - Dep / 2 ) ]5 J5 a' i4 m7 @" k* f
                          set f int (k / 5) * 5
. f* k. Y1 G# q4 o) a& f- E  setxy   ( xcor-of turtle f + x ). D) l' z! M5 z! ]$ S, J2 b) m
           (ycor-of turtle f + y ) + a2 N; t& [. G' @* B3 M4 \
           3 k, N) m8 j( J/ q0 m) m0 z( p
           8 h- M# ]& W+ Z) d
if (remainder who 5 = 4) [set g who: N$ y7 m4 Y4 q- `. Q% @& r! f
                          set x Wid / 2 ; k; g, ]2 K" e! A
                          set y  Dep / 2 ]
$ @1 `: x6 I; T% j: `% x* y8 a                          set h  int (g / 5) * 5
0 _, O' Z  Z7 H7 j  setxy   ( xcor-of turtle h + x )& {4 Q5 U) Q; m. F
           (ycor-of turtle h + y )
/ d+ n( d  `( }8 c) a, \/ w% s) w                          . W- N; x& b* V2 V2 x6 _$ j7 l* D
                          # B$ P4 K5 O6 v, R$ S6 S) l
                          ]& r! r* X' |$ Q/ A# x0 T
end
$ s4 x3 r1 t" v  I% Q
& Y$ W3 ^  S- g1 W. U) N* i- f9 Z[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,1 G; y( @4 Z8 I" m/ Q% V
应该是1 `" b+ _3 V2 }, t/ h
ask turtles [
( c' e/ ^; F" X# xif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) $ ^7 u6 g. H6 p- O! \' ?) @
                          set y  Dep / 2
4 H. k" s! T* ^) k  o           set b  int (who / 5) * 5" L4 m; n& a8 ]% x  W
    setxy ( xcor-of turtle b + x ); c# ~( p0 H& E3 ^" r3 ~7 d8 |
          ( ycor-of turtle b + y )]]
- q0 V( s& I# A: K+ Vend! g% ]" |/ I6 E& C
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 01:51 , Processed in 0.019600 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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