设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7165|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。5 f, [  R: ^  r/ D1 m# m; o5 K
2 b1 [5 ~( v/ W
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
; s) `! b9 t$ l* D4 i8 k& Z' y$ q, F4 W
turtles-own [a b c d k f g h
8 }* U' x+ h3 Z+ J  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 3 t$ q- O9 Q8 i/ w
]
# b0 X5 l! p# s! i1 f$ R& jto new
" y$ H: X4 v6 h$ ?  ca
# I" y+ n4 `* I. o; u) J6 x$ n( `  crt 5 * num_of_building
9 k5 w6 L2 k+ H. d  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]], D5 M% H& m& g/ Y5 W
  scatter     ;;keep center-turtle random positions $ F! \" c. y1 n- W
  unit_plan   ;;make up the building plan
# n4 J+ p) e9 H! Wend
. k! ]) ?4 c+ T/ }to scatter
! x! k  H3 t6 ]: aask turtles with [remainder who 5 = 0]7 D' R2 T1 A6 p6 h4 z* Y
[
5 a" O' T% Y6 Pset xcor xcor - 6 + random-float 15
1 w( }6 H0 N4 L1 `3 g/ l8 j3 N+ O+ Fset ycor ycor - 6 + random-float 15
1 V8 ~. h7 B/ a% p. {]: A/ ]# S* l! l0 ^. T/ H& H) ~
end; [$ {. @7 p9 j9 T/ [
to unit_plan
# H) y6 z+ B) o8 Nask turtles [
; E  ]4 R- F4 D( Oif (remainder who 5 = 1) [set a who ' h1 m3 K0 a* D! i
                          set x ( 0 - Wid / 2 ) ' m$ o2 K; k/ H+ G
                          set y  Dep / 2 ]
7 ]5 N7 m/ Y7 Y           set b  int (a / 5) * 5$ z2 h  z3 \2 Q/ y  H
    setxy ( xcor-of turtle b + x )
* r% _( @6 C/ U3 }( ]          ( ycor-of turtle b + y )
- m4 f1 N* F; o2 O& Rif (remainder who 5 = 2) [set c who# ~* I4 ]) G+ J' Q) r$ Y
                          set x ( 0 - Wid / 2 )
6 x. P  p+ i6 Y                          set y (0 - Dep / 2 )  ]
- \& J1 l( k2 D5 `# b9 C) O                          set d int (c / 5) * 5/ ~, t/ y3 E% B' u8 w
   setxy   ( xcor-of turtle d + x )
5 M- A3 H8 h# ~+ t/ |- N$ k. N, B           (ycor-of turtle d + y )
6 t6 t2 N- E9 r. E$ _          0 G' d. y7 ]: h  J
            3 N6 _, S) l8 a$ S6 H
if (remainder who 5 = 3) [set k who3 S* E% r4 I* C6 q
                          set x( Wid / 2)  ; u; Y$ \( i! j  z. M) P8 G
                          set y (0 - Dep / 2 ) ]/ l/ l/ g! y; Y5 P  ]9 F
                          set f int (k / 5) * 5
+ q( I8 C8 F/ p1 G% n8 W  setxy   ( xcor-of turtle f + x )) W2 V0 Q, b7 K( |  O
           (ycor-of turtle f + y ) $ ]/ n$ w6 S4 W% `* K
           
( i# l7 C( @( C! p0 W           
' V6 l) @) G/ k; bif (remainder who 5 = 4) [set g who
7 O& y: t$ }4 C9 M9 y9 a  d                          set x Wid / 2 + A# H% W$ J8 |/ m* p$ r; r! P
                          set y  Dep / 2 ]
3 X* J3 V" C. o  @2 j( ~0 K                          set h  int (g / 5) * 5( a5 q" A& O" D7 J9 s; p$ y- j' i2 `
  setxy   ( xcor-of turtle h + x )
$ G- F. P* ]2 N9 \2 t( H. Q           (ycor-of turtle h + y ) . c5 P& F* K/ U! K" x
                          
) x8 U$ K# A8 P: `6 x" O                          / b7 V& d( L' h
                          ]
. r9 o- x% B- z% {8 _end- i6 h( c' s( y

+ ^& ]5 y9 T% b/ l& C- N7 Y[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,9 X: \( `0 m1 |8 `/ T% W
应该是3 Z4 B+ H5 M8 S3 e9 N
ask turtles [7 q+ e& H+ ~: N2 j& m9 c
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 8 b6 |: }' H! Q: h
                          set y  Dep / 2 ! s* i% r# C; m! M4 r9 {# e
           set b  int (who / 5) * 5
2 p# m4 \1 u- T8 o) R+ F8 d    setxy ( xcor-of turtle b + x )2 M0 T/ t. y' g2 L
          ( ycor-of turtle b + y )]]
" s! _+ _6 [( g3 p/ @4 [9 k) j3 ?7 Dend
4 b  n+ c. ]) f0 h1 r之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-11 10:22 , Processed in 0.016916 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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