设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8406|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
& m5 ^% Z, Z8 v: Y% g4 u, n" m1 m# P
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
* p$ m! Z# t# [; V" d3 I- n4 w1 T
turtles-own [a b c d k f g h  \: t# E2 l& |' ]
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle + Z1 D9 i& `0 `% x5 _( u1 p1 e, z5 ^) K
]
$ ?# q' ]' V! Z7 K, x8 Lto new& l0 ^" R! z" W! A8 Z2 b! d
  ca
. ?! G) q7 g$ `# A  crt 5 * num_of_building
- K) F+ \7 Y; w. ]5 V  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]2 W- ^/ M+ x4 q& _$ n
  scatter     ;;keep center-turtle random positions
/ v% K0 }+ S) W2 o/ y( L+ j  unit_plan   ;;make up the building plan4 [5 ?2 O: s9 i2 `% ?" s1 g
end3 i! J( d2 L% a/ T5 C$ B
to scatter
, ?; n2 \# O1 G7 @% qask turtles with [remainder who 5 = 0]  k! F. g, |- f- |. o8 E
[# N( J* ?$ e) I$ W$ `! c' ^2 z
set xcor xcor - 6 + random-float 156 N! [0 u! h' D, j4 B# j
set ycor ycor - 6 + random-float 15
8 c! \$ P, A. a3 E, D* f]8 m- ?( ?9 P, B& z7 |% g
end
& O/ _% G. L+ g! r6 S# {to unit_plan
7 p3 e4 G8 P0 j( E! Q% g6 R: iask turtles [2 e, e9 M6 F1 P5 l5 q0 A
if (remainder who 5 = 1) [set a who ; _4 g, b3 K* H' O
                          set x ( 0 - Wid / 2 ) 3 b' f9 n4 D& B4 B4 V
                          set y  Dep / 2 ]
( S5 N" I0 z; D0 f* Z$ V9 \           set b  int (a / 5) * 5
7 d/ W8 H2 ?# B5 f, ^+ q    setxy ( xcor-of turtle b + x )
5 e1 ^( R( V3 @1 L% ~          ( ycor-of turtle b + y )
4 \, B/ v' K* Y8 jif (remainder who 5 = 2) [set c who
: f+ o4 F- o2 `' N                          set x ( 0 - Wid / 2 )
3 K1 O7 f+ o8 [2 j                          set y (0 - Dep / 2 )  ]/ Y  M+ v& x( `8 P  e$ g
                          set d int (c / 5) * 5/ `" A, V- q' ]9 [
   setxy   ( xcor-of turtle d + x )
  p% {" F9 m! b, i3 F" r5 }           (ycor-of turtle d + y )
) }( s5 y4 m: S, S" ]) t         
) V2 w- o9 X; {! O) A- \& e3 `4 g            7 d* c* X, j+ B" l8 }
if (remainder who 5 = 3) [set k who# K2 M. g  b! \' h7 B8 ?
                          set x( Wid / 2)  
; S' d: y; `2 b                          set y (0 - Dep / 2 ) ]
# p# l5 c2 w; i# ~) R0 E                          set f int (k / 5) * 5+ }2 A. \( n: G2 U9 z! S
  setxy   ( xcor-of turtle f + x )1 u/ V4 f7 s8 G# @
           (ycor-of turtle f + y )
; }  l( m$ T) S) u0 r. r. y6 k           
# J& w7 W; F$ a0 C# }% ~           " E" R. U5 S5 z7 Q
if (remainder who 5 = 4) [set g who& P9 k/ s; a' E3 M9 @; L2 _4 ~8 [) O
                          set x Wid / 2
( w+ e) G- Z! M2 r  c! X                          set y  Dep / 2 ]2 `/ I5 q2 O1 H/ Z+ |$ k0 {
                          set h  int (g / 5) * 5
* f& d/ d9 G6 {& {' p! x2 |  setxy   ( xcor-of turtle h + x )7 A9 q+ p/ C- V6 j
           (ycor-of turtle h + y )
/ X7 _: @/ a0 t" G! }* e) T                          ) \% q" K, u5 w/ c7 Q% f
                          . F4 [6 O9 f$ c. A
                          ]
$ V$ n( m& Q7 z/ O( Vend
  W, n: B9 z* R- w4 Q) U. |: f% S/ f. b# {# J
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
7 r% m. q; I+ y) T% J5 |. R应该是" C$ V- [, g% N# W+ A: H8 k
ask turtles [
/ r, t( F8 c6 pif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) - ^: ?3 A% `3 a* m7 N1 E- w
                          set y  Dep / 2
7 Z6 w7 P7 E2 f% @6 Q3 j           set b  int (who / 5) * 50 ]/ F, w" G# D$ ~
    setxy ( xcor-of turtle b + x )
$ D6 @9 ~/ w/ k1 ?  ]: r          ( ycor-of turtle b + y )]]: j$ `" J( F, m& R( `) A3 e+ `
end
2 c9 H, i% u0 n/ j% L之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-21 03:29 , Processed in 0.016983 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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