设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8671|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。7 Q& [) g" Q' k7 H6 @0 q
- W$ \5 h- Y8 y9 S
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。1 @' K( V- U6 M- t7 E

% l5 ]2 b8 y* lturtles-own [a b c d k f g h' X$ e8 L/ a) g% I' L. D3 ~' b
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle & N% ]2 q- M: {: p# V6 M) M
]
. e: B: k% X& ?/ }! R0 Yto new% J! K. C" F+ c4 b0 d8 E0 _
  ca
  A5 Y' ], U. D1 l  crt 5 * num_of_building
$ \2 R6 D$ ^3 L$ s6 Q  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]! @; j5 N' G# H* s( O8 S
  scatter     ;;keep center-turtle random positions
& e% q3 ~/ o' e: j) |0 j1 ?) f  unit_plan   ;;make up the building plan
' I4 {3 j* _- i. Zend8 F- n- |. T0 e' [
to scatter
- n  Z4 ^' d5 P6 O( _  @ask turtles with [remainder who 5 = 0]
$ B" a( i* F8 G6 z1 e- Y( p[
) O  y3 P  O; s# ?# e* w5 fset xcor xcor - 6 + random-float 15
5 y* J# C) R, c7 a" y; |set ycor ycor - 6 + random-float 15
6 U. e# M( p) h]
1 Z5 f) G) Q0 X3 k1 cend% ~# S# o0 x2 w8 S7 u0 Q1 l
to unit_plan
/ n( p- M: z0 M' F+ U" `. u" kask turtles [
* `/ C: r, L' S4 J; Oif (remainder who 5 = 1) [set a who ( O9 _' z* m0 K1 a1 M6 g
                          set x ( 0 - Wid / 2 )
, H( g) L  K% A( h1 Q$ i9 M                          set y  Dep / 2 ]
2 L0 p! I5 \' N0 x           set b  int (a / 5) * 5
. G- G. T! G( G. R8 h    setxy ( xcor-of turtle b + x )
3 Z# l/ x, y7 k( ]          ( ycor-of turtle b + y )
7 [+ H4 k% L; c6 ^" L2 _if (remainder who 5 = 2) [set c who, `1 J7 b. O/ W' {
                          set x ( 0 - Wid / 2 ) ' F5 m0 n/ u8 L
                          set y (0 - Dep / 2 )  ]
) T7 P7 N: D) {                          set d int (c / 5) * 5
5 }4 K* }7 O& O/ t+ [1 h9 N" I   setxy   ( xcor-of turtle d + x )# X( U0 ^: w  Q! J/ @
           (ycor-of turtle d + y ) / j2 ]. ~$ f, O+ c
          + N/ W+ l9 l" C6 n3 F3 b! B' `
            * I0 J' z9 W8 k& i. m; n# f
if (remainder who 5 = 3) [set k who
7 Y. A0 x: Q  m  U4 i0 Z                          set x( Wid / 2)  ' ?: v. U7 g% A7 |' R
                          set y (0 - Dep / 2 ) ]
8 N" b6 [9 F1 g2 X' K5 a, B                          set f int (k / 5) * 5. p' _8 u+ X! H2 h/ H. M
  setxy   ( xcor-of turtle f + x )+ P& S- x, W  [# f( ]
           (ycor-of turtle f + y ) # m8 Z( I  q" L/ l3 g
           2 M; P8 E5 M) \; ~6 m
           6 }8 v& a5 w8 Z
if (remainder who 5 = 4) [set g who
5 K. `7 X2 E2 _7 N+ u! `4 |4 `                          set x Wid / 2
8 ?$ W" Z& d0 m5 E+ P' @                          set y  Dep / 2 ]
2 s: l% a+ o" M6 R                          set h  int (g / 5) * 5) m0 r0 L; R0 R8 \  w/ D! ~
  setxy   ( xcor-of turtle h + x )
  H" Z; N/ h* f0 G: d, {: r5 D           (ycor-of turtle h + y ) ( R  |! `# y& w1 C3 c3 u/ D+ X
                          
7 ^. Y' _, p& K; i                          ; N& A0 G5 ^# {* X* z# @
                          ]
+ Q' S  m2 O3 Fend8 j* R. }  _) z# F
2 j7 B, K, `- c* h, g
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,# X; r8 O- W" ^/ _6 o8 @4 w" [: t- J
应该是9 d, H+ |+ x/ M3 P7 U" B9 r4 D
ask turtles [
9 t; r8 g# k3 h8 A  Rif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
; P9 s1 Z# I5 e- F( `" Q% |                          set y  Dep / 2
. ]: c6 {3 A9 K5 y$ l           set b  int (who / 5) * 5
2 [0 ?/ X- ~0 @7 j6 S3 [, j! u    setxy ( xcor-of turtle b + x )
) H1 p' _) J! K& |2 _5 p          ( ycor-of turtle b + y )]]/ [9 x3 R5 R9 b+ n1 J) Y1 B
end
* _" B( q/ W1 z* r6 i* J之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-23 16:04 , Processed in 0.014149 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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