设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8104|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。; B( k! d3 i- j. g0 S( G& @% }

. j0 i5 g+ z$ Y: u) f0 h但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
6 Q* A8 ^5 J1 L. w4 f. {( ]7 k# i8 N0 L. L! p* J+ X
turtles-own [a b c d k f g h
/ W1 u' F! Q! w9 U1 P- r  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
2 x: Z$ I+ }4 l/ w/ T]
" \- ?3 u! b; T# P( Yto new9 \. T; F4 b$ L# O- a, }
  ca, N2 G8 O0 }3 L6 ?3 P
  crt 5 * num_of_building
, }. Z+ R3 x. n; g3 Y; I! ]  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]( T; W, g+ \8 o8 m0 u+ |
  scatter     ;;keep center-turtle random positions
. E4 Y. O- s0 Y% C% q* c: f  unit_plan   ;;make up the building plan
* w6 o! P. u) w3 T1 |end- _& x, [" r2 Z0 s% `# B
to scatter
) e, \3 g2 R* o7 F  |ask turtles with [remainder who 5 = 0]* O2 ~( L; U& ]& R* H" S5 ^' i; R0 g0 z
[. M8 T, |5 v3 J+ D6 P; c! i( B9 Y
set xcor xcor - 6 + random-float 15' Q9 M6 z7 R. f$ A
set ycor ycor - 6 + random-float 151 F/ ^8 Z* v6 D' q+ P: Q# o
]0 c# e" K$ S/ G9 _5 Q
end# `6 P7 d& G* ^8 B
to unit_plan
* Q7 [% H, _- _# I: Rask turtles [
! y/ @' F8 _4 ?7 R0 Nif (remainder who 5 = 1) [set a who 2 X# i& Y+ C1 h8 D& D8 E4 ?
                          set x ( 0 - Wid / 2 )
, \/ f$ J" y0 }1 ]3 R# S                          set y  Dep / 2 ]. m3 ^2 V: ?1 N* G( W* f
           set b  int (a / 5) * 5
9 U' K! L5 K( M  a. Q6 `    setxy ( xcor-of turtle b + x )
* a* u  |+ H) g. k" S          ( ycor-of turtle b + y )
7 k5 ?$ F+ e( s. [6 W) N  I3 K) _if (remainder who 5 = 2) [set c who' y5 d/ b8 X- M" z) e: f* j
                          set x ( 0 - Wid / 2 )
! b+ H0 v0 w% S# `! e6 R                          set y (0 - Dep / 2 )  ]& ]3 ~/ E4 b( s1 Q: l
                          set d int (c / 5) * 5# v  d* Z5 i% |  A. W* _! B
   setxy   ( xcor-of turtle d + x ): j- q, L0 q4 r
           (ycor-of turtle d + y )
% T0 U/ t) S& ?( w; L' r: |" v) S6 T         
/ H/ k2 U6 @0 |' B% i            + J) D) M' s) ?+ h, {. o
if (remainder who 5 = 3) [set k who- r  m* _% B7 k( m1 ~
                          set x( Wid / 2)  
- n. ~% @% }% L" Q# D# ?                          set y (0 - Dep / 2 ) ], n2 E+ W6 l/ u% l( w" F
                          set f int (k / 5) * 5
; R2 S9 Y/ E" q. z* B  setxy   ( xcor-of turtle f + x )
% z/ Q& B4 }% n& l           (ycor-of turtle f + y ) 4 q( {5 ^& {" O9 F; k
           
, _" T) {& Q8 y. k% k( [           
4 E* n3 `% b; A$ S) aif (remainder who 5 = 4) [set g who+ J4 ^  {/ S# s# H1 P
                          set x Wid / 2
2 D% f# Y1 a5 z  [; B& Z; }                          set y  Dep / 2 ]- ]) Q' r0 s% i  H+ Q
                          set h  int (g / 5) * 5& m% H" W% ]$ M7 }4 A/ H2 g2 N
  setxy   ( xcor-of turtle h + x )
+ C) v' A  [8 ~' ]5 M9 P           (ycor-of turtle h + y ) 1 @% m5 @' C  j& D
                          
. u& m+ t1 b9 j8 J9 `" d                          4 E8 ~0 W: @/ ?: N  R  w
                          ]
4 W1 O) x6 G, z# E1 F; Aend; F' b& U: y# Q9 e  `$ A
- U& a4 M' G/ b* w. y/ G
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
; X. h: y3 e, _9 T; K& P' @3 i应该是7 l6 H  l  m# G4 l5 ?" u# I/ c3 w
ask turtles [& U8 G4 a. w0 l2 A' f
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) - E0 ^+ C, Z/ y; E+ v$ d
                          set y  Dep / 2 " T, t4 I: C9 d! V! i, _
           set b  int (who / 5) * 5- }" z+ {; R- \8 G% T, g* T, P
    setxy ( xcor-of turtle b + x )
9 ~6 o9 R, S6 f0 s5 l: c( A( v: h          ( ycor-of turtle b + y )]]
  V, I" s: G8 l$ k/ oend
. ]% W. \) b% N( O% R4 E' Z之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-8 03:40 , Processed in 0.019851 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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