设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7367|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
4 p; v$ [- X7 @/ G* C
7 A* b$ H! T6 x: U1 I但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。2 K- Z! W0 T$ g, k% R4 j
8 r* c) |. Y& c( @
turtles-own [a b c d k f g h
5 V6 q; k- I/ {  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
7 b0 R2 ]% H$ b+ m# ^]6 b* F' a0 W* K
to new
& x' b+ O- b, O1 D  ca
* [: {6 m) R* g1 O  crt 5 * num_of_building+ w0 T( C& i/ P- X8 x: a3 y, o, O  @! k
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]0 w! v4 [  F% e4 L, i5 X! \
  scatter     ;;keep center-turtle random positions
% a5 C6 x# c- {* J/ b5 b4 t( B  unit_plan   ;;make up the building plan+ r; q; k+ Q; R
end
- x& I+ }+ m. b7 B9 cto scatter
0 I% n& A( k' k0 R1 ^ask turtles with [remainder who 5 = 0]. e6 t* p6 ]5 K3 \$ S8 s
[" e8 v+ Y# B7 S
set xcor xcor - 6 + random-float 15
4 w! s, P$ F0 A# N* a' @$ D: `set ycor ycor - 6 + random-float 15: T$ W  |2 Y6 Q2 F; G
]  }( P* i) {3 t+ `
end
9 f4 g! X' [) K, }' ito unit_plan
8 I( Y( U8 k6 k( m6 u; Lask turtles [, ^6 H7 t7 B) q" y
if (remainder who 5 = 1) [set a who   d5 B! t$ S& M+ a: z
                          set x ( 0 - Wid / 2 )
% d1 `; C0 c2 q6 H6 o7 g$ R8 S                          set y  Dep / 2 ]4 ]+ q. t6 ^" O1 \' a/ D
           set b  int (a / 5) * 5
' T0 J  d3 B% A' S5 v    setxy ( xcor-of turtle b + x )
$ [9 y; T+ R9 r9 P- [5 W9 e( i- @; r          ( ycor-of turtle b + y )% B4 x: J- ^0 d0 m4 I& D
if (remainder who 5 = 2) [set c who+ }* ^7 J1 a* ?, z& G& X! w  v
                          set x ( 0 - Wid / 2 )
: V) M" r/ a) F4 g$ z                          set y (0 - Dep / 2 )  ]5 C8 i7 w* j! D( C* y
                          set d int (c / 5) * 5
" X' b  [) O; r1 [5 h   setxy   ( xcor-of turtle d + x )8 v' d/ F  y1 P  b9 y8 _3 _% z
           (ycor-of turtle d + y ) 4 O1 i* |  h, A) f/ B1 Q% g" h: l$ {
         
3 h# N0 P2 H/ G$ a4 H$ ]8 s            
/ v$ A1 A# a' p9 b9 W2 `if (remainder who 5 = 3) [set k who
: ?( E/ Q% d3 A# h6 b                          set x( Wid / 2)  
2 m8 h6 L; m+ F3 L% R9 G                          set y (0 - Dep / 2 ) ]
5 _: Y* j- Q9 t  T. X# J" V                          set f int (k / 5) * 5
' w5 m) V0 y- U/ N' ^9 t0 B& s  setxy   ( xcor-of turtle f + x )
* j% s+ I& Y; M. z9 u5 `8 y9 h/ p           (ycor-of turtle f + y )
  J2 h4 v' t& I' z" T           ! [- J" X, ]& ?7 }; e3 `
           
1 U+ O  s) K1 k$ rif (remainder who 5 = 4) [set g who: W5 Y6 E. j2 t; F' ?
                          set x Wid / 2
" [( r/ S% z7 k1 Y+ V                          set y  Dep / 2 ]
8 ^* `* ~& R* N; U  s' l( G  H! O7 D                          set h  int (g / 5) * 5
% J9 S3 s4 p% t" c( N6 z  setxy   ( xcor-of turtle h + x )
5 l5 E4 a% k. q4 N, J           (ycor-of turtle h + y )
" D4 z* E, A' B3 p$ V) C& ]                          
# P( h% ~& ]4 L' ]                          
$ b) V  {8 J  `  P4 L" Z5 ?                          ]
" T: w) J5 n3 H5 a0 u+ ^7 ], Z3 Qend
1 u; x# }8 ?2 w* ^3 n0 R/ M; _" q: a! c3 c" L
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,5 F) q4 i6 ^/ g# N$ p
应该是
( P) R/ C: {; G1 K* Task turtles [/ ]- f9 K& K$ O# N* h" C8 M
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 0 M2 ]& N4 q- v  A1 P* s% U
                          set y  Dep / 2
3 t- H! H( P" k           set b  int (who / 5) * 5
  |! G! y" r: L4 m2 p- K: L* \    setxy ( xcor-of turtle b + x )
1 b2 D0 k, ]  l& g          ( ycor-of turtle b + y )]]- y& _2 P/ z2 m7 t% V) m( R
end
) R: C# Z% W" e. M; q: i, u之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-4 09:41 , Processed in 0.016831 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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