设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7624|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
* H3 d: n  _) d3 c  S4 C9 ^* L& O! s9 e5 h) ?$ Y
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
, X4 s( l) {% u+ W" W4 b2 w+ N. K
$ m; Y! ~" J1 ^( J. B, p" xturtles-own [a b c d k f g h: ~9 E+ J9 d+ P" |. a6 K$ ]
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 1 W% W. p0 z/ t9 N0 }  m
]
8 l$ m7 E1 o' Yto new
  j/ t, A% Y) {0 e* H2 N8 W  ca
) d) c2 _8 s" q- o  crt 5 * num_of_building
/ m$ I1 u" O% e9 @8 ]  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
7 e2 |4 y( A1 S. E  scatter     ;;keep center-turtle random positions " g8 N4 ^9 S5 f5 {
  unit_plan   ;;make up the building plan; m# H! Z5 P: L$ O& D/ y
end0 `# o, z+ K  ?& o
to scatter. T) M4 a. u6 @; y% p8 N
ask turtles with [remainder who 5 = 0]) Q. p5 z( o  R8 n8 t! s+ A& K; L
[+ v0 O3 J7 Y; ?9 J6 U& G8 b
set xcor xcor - 6 + random-float 15
) [# o; B7 Y# f! Fset ycor ycor - 6 + random-float 15
7 e$ B4 l  }, c3 D]
- X1 K1 F4 F" _( y) lend
4 L' A+ H: |' e; }5 rto unit_plan & F  s1 U9 A' L( U8 V' Q0 o
ask turtles [; y9 Y& d3 F4 x# e4 t! ]: ]
if (remainder who 5 = 1) [set a who + B$ u$ i4 o+ S' X7 @
                          set x ( 0 - Wid / 2 ) 5 H- y/ i( |2 n  R7 v- _
                          set y  Dep / 2 ]3 Z7 d- c+ V7 J$ p, a. E
           set b  int (a / 5) * 5! T4 Q* E+ R& U; f# t; p- {
    setxy ( xcor-of turtle b + x )+ W5 ?, u! |4 ^9 M5 p/ Z  p4 |' J/ t
          ( ycor-of turtle b + y )
7 s0 e/ h7 Y, A* ?if (remainder who 5 = 2) [set c who
/ K9 v  ~; G) `+ {                          set x ( 0 - Wid / 2 )
& |* Z+ L& y8 w  f                          set y (0 - Dep / 2 )  ]6 K$ S5 S  K2 W! ^4 F. K5 Z0 |
                          set d int (c / 5) * 5, v0 S7 y% g9 G$ A
   setxy   ( xcor-of turtle d + x )
" {/ e, S4 ?$ ?" s3 [           (ycor-of turtle d + y )
" w& ]' R8 v; M' f. w1 Z          / r/ U/ Q0 _9 L+ d4 z
            9 X! e- s( i! V; l8 \8 u( Q
if (remainder who 5 = 3) [set k who
5 S' }, F' n+ _0 n                          set x( Wid / 2)  
, Q5 S7 Z4 z! x                          set y (0 - Dep / 2 ) ]
/ ~& Q; P2 O* ^( Y' W+ S  _) B0 }                          set f int (k / 5) * 59 i* N2 _# `; J" o
  setxy   ( xcor-of turtle f + x )2 x& y4 S- ?1 o, \$ T, p
           (ycor-of turtle f + y ) 8 y* Q: H$ ]% K9 H' Q
           
( I; H" ~) v2 ?+ P6 P+ j2 x           . S5 y% x. A. H
if (remainder who 5 = 4) [set g who
* x1 F0 g: m5 j                          set x Wid / 2 1 y! l- b, D( X4 N
                          set y  Dep / 2 ]! X( {4 M! }9 ]9 z
                          set h  int (g / 5) * 5
  z/ t: r6 X" S% U$ o8 z  setxy   ( xcor-of turtle h + x )
- l+ g8 m  q# ~6 C9 o# u           (ycor-of turtle h + y ) * A6 r: L, R2 m% O
                          # }. a8 g3 b. G$ x; O
                          
$ C) Z7 w& u1 b9 ?( Q                          ]
0 z" e; \3 B  K1 G7 t# }) mend
( P# v& Z9 a# s5 w/ G5 G4 |" g1 L3 [$ K* U4 }6 y$ t
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
& o" X3 B1 g+ L9 i+ a) G9 V  E9 Z应该是7 a  z% r# G3 D/ R1 @' I! D
ask turtles [
, H& \6 b* S7 l2 n# y* ^if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
9 K& Y2 @& w2 \9 A- R                          set y  Dep / 2
* R2 \3 _8 Z' e' |- x9 H2 h- X           set b  int (who / 5) * 5
/ e/ M6 M3 f* J& s1 p1 [3 P    setxy ( xcor-of turtle b + x )+ W8 ~; F" P4 t
          ( ycor-of turtle b + y )]]
9 Y; S2 I( B# \: q3 q* g. h; r/ Dend7 D1 b9 ^* ]4 B% b- M
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-7 10:12 , Processed in 0.025522 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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