设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8751|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
8 p5 b/ d' H$ u0 [2 L! [3 Q# Z: h" B% K
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
1 e# D) P: r8 w: q$ p% N  t2 ^2 q3 A5 `
turtles-own [a b c d k f g h
9 z: F/ |! z7 s9 B0 P4 f- R  x y     ;; these are the leaf-turtle's offsets relative to center-turtle $ o5 W' V8 ]: o1 u: D6 Q
]$ x$ J7 d9 L% u% P4 ^& k" D
to new
2 e$ p! g" {9 y: B6 X  ca0 H+ n# q/ K7 D3 q, @+ f
  crt 5 * num_of_building
2 A) t3 K+ T# v. h  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
2 i; _0 x; V9 _( m3 c  scatter     ;;keep center-turtle random positions 0 Y2 M7 a3 J8 D, V' r, P
  unit_plan   ;;make up the building plan9 l; M7 [$ K* H  S" v1 n6 e  I
end% ?3 S$ |/ r, C. h
to scatter
* x+ A$ e+ X  Y4 x) d8 lask turtles with [remainder who 5 = 0]
! O* i* b/ N$ A( r[
: o" i( J( a( Kset xcor xcor - 6 + random-float 15' B/ w, |  L/ m9 K  g. ]" F/ K
set ycor ycor - 6 + random-float 153 P: q+ M% T- R: I& E
]
4 U  f/ B- ^3 r6 E% O. V. }end8 t6 N6 A' d$ _! k, h* n
to unit_plan % A: o3 I8 B" ]
ask turtles [" {- P( Z: ~, w7 e
if (remainder who 5 = 1) [set a who ) P5 s- v6 e; s+ q1 _
                          set x ( 0 - Wid / 2 ) 2 K2 D4 u8 L$ r: f% z0 h
                          set y  Dep / 2 ]
! [9 P! e/ I- g1 s4 }& L# Y& E- P, a           set b  int (a / 5) * 5! Y8 B# k! i5 c% V
    setxy ( xcor-of turtle b + x )
: p( ]- j5 s7 M          ( ycor-of turtle b + y )
$ k' K# l- n0 r2 Y. n9 yif (remainder who 5 = 2) [set c who
3 t6 v; K" u) W6 j4 l% Y  |                          set x ( 0 - Wid / 2 ) 4 U& U6 O' }4 R4 Y
                          set y (0 - Dep / 2 )  ]4 [% P) X. K( D/ S
                          set d int (c / 5) * 5
5 O7 _* k& B* I9 T) X   setxy   ( xcor-of turtle d + x )& q0 y& s- f$ d+ P$ P( S
           (ycor-of turtle d + y ) 4 s0 e$ e0 u7 b  N
         
. i( H+ |4 u% T- s            # J$ _% P+ a' S' h: ~) v
if (remainder who 5 = 3) [set k who
, {( X# V" x; z: }$ v  J                          set x( Wid / 2)  / u- S  p2 h$ w) s- P% W" z
                          set y (0 - Dep / 2 ) ]# n7 D7 I1 S, ]
                          set f int (k / 5) * 5# D! W( Z+ k+ a# D7 _; j! P; a
  setxy   ( xcor-of turtle f + x )
6 N% r  B( a# u8 s5 H           (ycor-of turtle f + y )
4 z' V, ~1 i/ j3 {+ O" G           
( E9 K0 x8 q/ y$ [           
$ _) g# v7 c: B6 @if (remainder who 5 = 4) [set g who
$ u3 F* H3 R; F3 c                          set x Wid / 2 - {8 y8 i* p& {" U* R2 z, z
                          set y  Dep / 2 ]
, W& _8 P  X' Q1 S# B                          set h  int (g / 5) * 51 J' n; G' \" g% B
  setxy   ( xcor-of turtle h + x )
; T3 X& k  Q# ~9 d7 ?/ w           (ycor-of turtle h + y ) & a3 h$ G: V+ T
                          
; q/ l* [- X  n+ X4 `6 [$ L2 O( h! M                          / O) Y* r7 O* a2 T- y8 r+ G& A
                          ]' E  w: U( `( Q2 T( K+ f& F+ ~
end+ S. n! P: T5 }! b" S! ~! M* B7 r

: X5 K3 W. }. N[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
  ^% x) F" s" v- B应该是* V# W& C& k; Y; I% Q) Q! C0 j
ask turtles [+ q& F! O3 }" N$ {  d* e" d8 i
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
' i& w9 \- D6 L) n+ u                          set y  Dep / 2
+ o! k0 U3 a4 U! }' v           set b  int (who / 5) * 5
* g# A% }4 ^' c# Q    setxy ( xcor-of turtle b + x ). ^3 C5 P, V* i. y
          ( ycor-of turtle b + y )]]
" y/ l. [9 t; V) d5 C+ Yend
* t8 m  b* u& z5 q: G* p之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-1 05:47 , Processed in 0.022128 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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