设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7709|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
8 D' I* o# d5 C7 ]4 `8 B
  W3 J. m9 @% Y. g但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。( t& U# l% d: j0 `  Y! m* v! I' n

" C$ i) a) _, H8 iturtles-own [a b c d k f g h2 d6 `6 G! q. b
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ) p: S8 l! K0 J. t* [
]2 g. }2 y0 v4 c1 h/ ]; N7 z! T
to new, L9 t5 ~# s7 |/ G: {4 z& |
  ca
2 j) ?! n9 D" E, m2 D  crt 5 * num_of_building
! t6 O+ x' V6 T% t  g  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]4 t  U8 R) P- H' {2 p# C
  scatter     ;;keep center-turtle random positions % `. \$ c* O% j- P
  unit_plan   ;;make up the building plan9 e5 ?0 A, K2 A* [( d
end
! O  \. _( ~  u8 _to scatter
" T9 e1 w1 u& iask turtles with [remainder who 5 = 0]- q! F& }/ c6 x+ N2 j. L* x& k
[
5 n" m* l% i$ T: rset xcor xcor - 6 + random-float 153 _* [0 V  k9 a+ M( O  g
set ycor ycor - 6 + random-float 15
+ b+ K9 i8 [# v: c5 d! l# t]
8 j7 t  l3 P$ M# V( N/ e* iend# Q9 T  F9 d! P, P# P+ P, z1 b
to unit_plan * k( W" _2 v( [9 C1 f
ask turtles [
) o0 I  [8 z; j" V3 S) oif (remainder who 5 = 1) [set a who : a2 O; e2 e! U* O, S9 D$ D
                          set x ( 0 - Wid / 2 ) / X8 ^& J: }( Y- t) y7 Z* Q) E
                          set y  Dep / 2 ]
( T% F8 \6 O7 S2 M           set b  int (a / 5) * 5
0 W/ ]" g) H% e7 {, _/ g; C0 Z    setxy ( xcor-of turtle b + x )2 `0 w  L0 R9 b
          ( ycor-of turtle b + y )8 m6 t( T1 ^3 [
if (remainder who 5 = 2) [set c who& u# r$ o4 _3 w; [) O
                          set x ( 0 - Wid / 2 )
3 H  @& F: x$ e# g& i; s( }7 h9 p8 z                          set y (0 - Dep / 2 )  ]
) B9 D8 w$ s8 s; M1 b                          set d int (c / 5) * 5# ?! `7 ?; Y) @$ J/ y( ^7 q7 y
   setxy   ( xcor-of turtle d + x )! _) v$ Z8 e  Z/ ^. k
           (ycor-of turtle d + y ) $ u* v* A2 x: ~6 z4 a/ C
         
$ m6 f. g/ C' H, ~1 k! @            
) y6 y! A% L  j" W( Sif (remainder who 5 = 3) [set k who. O" Z' i! q0 t1 q1 {: h
                          set x( Wid / 2)  
) `5 {! J$ E& [/ y* l* w                          set y (0 - Dep / 2 ) ]3 a/ J% t8 _; u& Y2 v
                          set f int (k / 5) * 5
; Z+ t7 d1 k) {  setxy   ( xcor-of turtle f + x )
( ?) t4 X' v% o* `8 _1 C4 b6 h           (ycor-of turtle f + y )
$ K; J5 R# l, z+ l7 w           
( Y% t1 d5 i$ a9 `7 o- W8 s! v, u+ }           
0 c3 L+ F4 h$ H2 x* d& o. O) Eif (remainder who 5 = 4) [set g who$ ?2 |- R2 Y4 ^, a
                          set x Wid / 2
; a+ l3 U) p2 Y                          set y  Dep / 2 ]; ~9 D: D) V4 O8 m7 M% j
                          set h  int (g / 5) * 5+ K1 W- H3 w" c9 A/ v
  setxy   ( xcor-of turtle h + x )" h1 H6 j. w6 c' \
           (ycor-of turtle h + y )
( S6 E$ y1 J; r  w2 L  c% t                          
8 {' N: U- `" x" {                          9 F# H, f* ~5 J" {
                          ]
* u; _5 U9 Q  ^% E$ N  x5 Yend0 X, D7 T. r$ [( n

" E0 V' |( V2 Y3 ][ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,! V7 Y3 w2 a! \
应该是
2 b& B  r  ^7 @% [ask turtles [4 `9 Z. }" X3 H" z/ F, ~/ p
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) / q/ D: R2 C9 r6 M2 s/ D! e
                          set y  Dep / 2
) \& A( O" X* N           set b  int (who / 5) * 5+ ]! ?$ }8 Z3 R/ U/ y/ A
    setxy ( xcor-of turtle b + x )
8 e  x; C. f; r& ~          ( ycor-of turtle b + y )]]2 {5 i9 S' g5 ?: q, r/ I& z
end+ h) l6 l+ H8 P! J0 G- H3 W
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 05:45 , Processed in 0.014899 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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