设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7766|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
' T3 m6 g' {' ]5 b7 @: U/ `* ~% L3 H
) n# J9 l- {, v4 n( W但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
& ~9 W+ @) O* }' Z; c0 I5 V: U7 Q# y/ U' ^/ J4 x! b
turtles-own [a b c d k f g h
( N7 u- M) f" m( J% u4 w  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
) }. k3 {( k# m! G1 y: j" r0 z]
' Q) Q6 @2 B7 N& {to new# c; k$ j' i. @6 p
  ca- A2 q* e- K: ^2 c' q+ o2 D
  crt 5 * num_of_building
7 d/ q4 R+ l: C/ Y) s  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
1 P! j- M7 V* s- K  scatter     ;;keep center-turtle random positions
7 C1 g: E+ ~4 C, q3 i  unit_plan   ;;make up the building plan6 h1 f2 }# m% l8 _- X" i% A9 K8 C9 ]
end/ ^/ x' D! [& W3 n" }
to scatter
$ F9 H) k5 Q2 y% A" ~ask turtles with [remainder who 5 = 0]
# Z1 d, K  C$ V, X[0 |! M4 g% T( F& Z  W% Q; |4 V
set xcor xcor - 6 + random-float 154 _. z. B& J5 K' Y- B( n  ]
set ycor ycor - 6 + random-float 15
) {0 ?3 a3 g) o' D% U5 v]
4 H6 k# A) H* k/ X6 hend
- b  ^7 C; c/ Bto unit_plan
4 U7 E6 O4 H& z4 a7 S: }# \5 c. Mask turtles [4 `& W9 ]% P) I& Q3 k
if (remainder who 5 = 1) [set a who
" p/ r! R0 B3 b1 n& a                          set x ( 0 - Wid / 2 ) 9 i1 x. _8 d3 u% k7 j7 X% \
                          set y  Dep / 2 ]
* F) ]* I& e2 S9 U           set b  int (a / 5) * 5% U; Q0 q3 b$ d4 N* ^% R! b3 {
    setxy ( xcor-of turtle b + x )
0 f6 h- G/ C( r- g2 {6 M2 v          ( ycor-of turtle b + y )
8 U% s) t0 P9 ~: r2 }% J: pif (remainder who 5 = 2) [set c who
' J4 J, Y0 E2 ~4 {- J" b$ ~                          set x ( 0 - Wid / 2 )
0 n) \" p+ \5 a. q$ Q0 r/ U6 O                          set y (0 - Dep / 2 )  ], L* C/ I( ~1 z5 h5 E* a; M
                          set d int (c / 5) * 5
  a1 g+ q9 L% U2 R6 o; p' \   setxy   ( xcor-of turtle d + x )
' z8 {  N. M+ ^           (ycor-of turtle d + y )
0 o: Z* }$ b8 W9 a% V* \# b# X6 x          ' O  U6 K8 {. w8 a/ N
            7 a/ J5 m' K1 u  o1 z
if (remainder who 5 = 3) [set k who  r, L9 i/ Q- T* g/ J
                          set x( Wid / 2)  
) \  p; S/ t. k3 ]0 @! c$ {( L                          set y (0 - Dep / 2 ) ]
+ Q5 _1 c1 L' e: C: D                          set f int (k / 5) * 5
/ J4 d7 K  F- R5 F  setxy   ( xcor-of turtle f + x )' O( n6 X) @& y3 K/ C
           (ycor-of turtle f + y ) : }+ D5 |$ c% I
           % L3 p9 G; m8 N" }
           # U  l5 W; C* q) Q
if (remainder who 5 = 4) [set g who
7 u% r/ E% `' k) K. E2 |' {                          set x Wid / 2 / x2 E# t2 ~2 N9 w
                          set y  Dep / 2 ]5 S. [% V& E% f: h( k/ N' c
                          set h  int (g / 5) * 56 J; m# l! @. o1 w) l
  setxy   ( xcor-of turtle h + x )1 x) ^% c4 {, p9 ?
           (ycor-of turtle h + y ) * I5 T! j' B+ M) X
                          
: \' M& k5 F3 q4 f7 G( x) |( X                          
* A3 {% i9 N' {+ a# }. |7 C9 r3 a- t" }                          ]
( q. @6 E+ V7 l. Q; c3 Uend
' w& q9 _" b( S2 k% s! m, B0 k' E# j2 n" K" j2 p" Y  y
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
/ y* C) m2 j) U5 M* V" M4 _应该是
2 q. b( x" D9 [% z1 ^* r: x% task turtles [: H1 u/ y# {' J" b
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) % `3 R/ H5 H& g- {
                          set y  Dep / 2 ; [6 V( z* x" @# V+ z  K
           set b  int (who / 5) * 5" j/ q- i! D; I5 B8 |
    setxy ( xcor-of turtle b + x ). z- c* H& F* z$ F9 f/ Y
          ( ycor-of turtle b + y )]]4 p- a. X( c# O1 e5 X% x! L
end
* t- r7 Z- v7 I8 X! D1 g之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-28 01:49 , Processed in 0.018239 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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