设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7761|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
! f( F+ `' n% S: D# n+ S* l. }/ T3 ]% i* L( M6 a$ h
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
3 h* y; e) `$ B! ?' q8 G/ H; c& p- {, J: Q
turtles-own [a b c d k f g h5 X2 W" V4 `$ p, d- q" a
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 7 O2 D2 q, b+ d* d/ }5 L
]
& Y& `" Y, @: ~7 u$ J- F' e/ ato new
4 W4 C/ K7 K. d2 i! l+ K  ca
4 u( Z3 c" ]0 ?& z; W$ _  crt 5 * num_of_building
# F; o6 d8 g4 s  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
5 g+ r4 n6 n1 b% y4 ^2 j  scatter     ;;keep center-turtle random positions
/ `  [5 F# o- t" d5 C  unit_plan   ;;make up the building plan% W! y0 v1 P* s' }: A* b
end
, o- S, m! t6 ~0 r/ Lto scatter5 \8 g' l; b9 [) I0 a" M1 p( R4 v
ask turtles with [remainder who 5 = 0]" T  C9 L9 D: y0 a. a. R
[, S/ o: {1 r( v( B1 d. }, \# ~1 M- b
set xcor xcor - 6 + random-float 15
! n' K2 f) t* Y* d/ B/ s4 iset ycor ycor - 6 + random-float 15
5 @% s$ v5 c, G- f( n  J  ?& s- n]
0 K0 u) [) O0 B. Z' D! V) tend) {5 v  D4 }( l
to unit_plan
7 Z' p. X) ^: O4 j0 j; S5 t# p2 E, gask turtles [# l$ i1 i$ g. m( }  V6 w" Q
if (remainder who 5 = 1) [set a who
5 J; a' Z' f7 t  h( F0 R& U8 F                          set x ( 0 - Wid / 2 ) 1 r  |% r$ O5 H, M$ s3 E
                          set y  Dep / 2 ]
+ x* g+ b% f+ J4 P8 t% l0 h           set b  int (a / 5) * 53 V# L0 c3 S# o; x$ k
    setxy ( xcor-of turtle b + x )5 u. u! f+ o2 P. A; |5 J, @% X8 C. f
          ( ycor-of turtle b + y )% e5 o9 o) A; Z; _$ {5 }. M; O9 f5 p
if (remainder who 5 = 2) [set c who- m8 I! a  V, x4 V* O& h  Q
                          set x ( 0 - Wid / 2 )
4 D& Q+ c' t$ q                          set y (0 - Dep / 2 )  ]* m* n8 a" [' s- L
                          set d int (c / 5) * 5
/ O  i( [  x1 v4 L, b   setxy   ( xcor-of turtle d + x ): G# F) O, V0 E% p% `
           (ycor-of turtle d + y ) 0 L& h$ s) q. ]' T0 b
          6 O( E  V$ b! N: J7 r
            " Z  m- q. n% a
if (remainder who 5 = 3) [set k who* s  p, g$ o* x& M
                          set x( Wid / 2)  
( H0 }+ f9 y: ^  E* a                          set y (0 - Dep / 2 ) ]: @3 Q3 O: T+ O# h3 m
                          set f int (k / 5) * 5) ^/ h0 q2 q  j# L( W3 U
  setxy   ( xcor-of turtle f + x )
. i  I) j3 z) ?! Z3 X2 h' U3 M# u           (ycor-of turtle f + y )
6 c4 F" l+ M* R% S           
6 ]" ^6 y( r8 S, {           
% Z0 Z$ ?8 y; a! y# m8 Qif (remainder who 5 = 4) [set g who
! u9 F0 l9 V) h6 f+ s$ [. u                          set x Wid / 2
( I" c4 h# R( Z3 Z$ }                          set y  Dep / 2 ]
: }3 @7 e9 s0 ?8 Q3 }                          set h  int (g / 5) * 5) ?4 f( v, r! F
  setxy   ( xcor-of turtle h + x )1 w4 z% O9 N  t* |9 ?* m
           (ycor-of turtle h + y ) ) i# |1 u1 m) H3 d/ V
                          
7 w, A* `' s: G: R0 V5 R+ B                          
7 x- n% i6 h. o! D  g% j                          ]
( S. f8 E* Q8 S" W% ~5 u: t0 A4 Bend
4 W+ s6 d5 x7 I. ]
8 j1 ?2 U; P% P) A" `% C3 ?5 G% e[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,' U4 K- O" a( R: c$ u+ T. b
应该是
  p$ W9 n: ]% ^. s% G# Sask turtles [+ l1 E; u* C) u! G  o4 K" Z
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
! O6 m0 T+ z, R0 Y( @                          set y  Dep / 2
9 O/ L8 P' s1 C9 Y5 q           set b  int (who / 5) * 5' w# ^8 l* `" B6 j' R& l: o2 v
    setxy ( xcor-of turtle b + x )
& @# o! d1 {6 ^* i* [7 V          ( ycor-of turtle b + y )]]! l( {# f, m# @6 b% Y3 o
end
4 v5 n; U: o: H# \" K( d% G* g3 X3 l之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-27 00:59 , Processed in 0.017408 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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