设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7848|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
. w1 M3 P2 }) r' k2 C3 f. m* l
6 ?3 l; b, e* W; d但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。% i3 s/ Y9 V, v& r  l9 u

/ L# |) H" M1 Q6 |turtles-own [a b c d k f g h5 K5 l+ K) d8 Q. m6 z% @1 {
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
1 ~5 }. Z4 ^# S) _. S7 G; T4 t- U. j' u]- `( l$ @: q8 r6 y8 c5 Q; M% g
to new
1 j% e& |; Z8 J  ca7 J# T7 @) j$ z0 T3 `# j
  crt 5 * num_of_building8 ~. m" p& q7 z
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
* N0 q& I) J/ L2 X$ g  scatter     ;;keep center-turtle random positions
; p/ ]7 T7 M/ o4 }# S  unit_plan   ;;make up the building plan8 L8 X' ?  Z1 w+ g% Q5 [  B
end3 x2 M+ {0 ]* X, G5 X  ]4 q9 m2 c3 J( `
to scatter
8 J( A2 `. U" y& h, R6 Gask turtles with [remainder who 5 = 0]( f! z4 }5 n7 ?% W) n7 |
[
8 d7 M' R  j0 }+ ~1 Bset xcor xcor - 6 + random-float 15
- U! Y1 u: u1 r& K0 X  P7 Bset ycor ycor - 6 + random-float 15+ b7 y$ `  {& n0 B& m
]7 L  F# M1 C! d; D$ B$ m
end# R9 b% b" A* ?% p: v2 h, G% V4 P
to unit_plan ) F6 g) C# T) b% N
ask turtles [
3 n9 ^6 p& J" k1 C; S' F7 \if (remainder who 5 = 1) [set a who - z1 l/ `0 r) ^8 O: v
                          set x ( 0 - Wid / 2 )
, J1 s( C. A, \( l- Q& X! m) `                          set y  Dep / 2 ]
! H, m: G3 X& \- R2 q           set b  int (a / 5) * 5
) F$ |7 Z# z6 `6 Z( R8 Z' e- N    setxy ( xcor-of turtle b + x )
$ ^6 E0 R' k6 u" q& L- w          ( ycor-of turtle b + y )
2 K! A  R$ j4 D  T# l7 _if (remainder who 5 = 2) [set c who: @- n2 r, N0 F: B3 v6 t
                          set x ( 0 - Wid / 2 )
* E4 z" R, i7 {! g/ b* B0 H; X  |# s                          set y (0 - Dep / 2 )  ]
. ~) }+ _0 k8 a                          set d int (c / 5) * 50 s3 T) r- n. s( p
   setxy   ( xcor-of turtle d + x )
( F2 V& z5 Z# q" A           (ycor-of turtle d + y )
" s* F( P" F0 [4 _8 d( N0 G         
  k, G% D! }( P' j  c1 h            
2 o. z3 W! C; vif (remainder who 5 = 3) [set k who' V* \9 Z- [  y2 ^/ x
                          set x( Wid / 2)  . g, k7 |' `5 u
                          set y (0 - Dep / 2 ) ]
1 e. P0 s0 t) L& Y" U                          set f int (k / 5) * 5
8 W: s; Y2 W% p2 X  setxy   ( xcor-of turtle f + x )
' F- L. e4 j  r           (ycor-of turtle f + y )
$ W* Z4 w4 Q% n* W( c! C5 e           : C" V$ a* q' M* N& @# F- M* b
           & g1 a) u, S/ e
if (remainder who 5 = 4) [set g who
, P, [3 u! D- Q" O5 M5 b                          set x Wid / 2 3 a7 Y6 [6 x$ S3 v# Z6 A; v& ?0 j8 l! L
                          set y  Dep / 2 ]
0 u( N' M' _) n, X                          set h  int (g / 5) * 5
: w# h5 s' t+ G- x3 X: {  setxy   ( xcor-of turtle h + x )
: J  ?" _- p1 k% M; P% J7 @: O           (ycor-of turtle h + y ) / {/ N  m( _; Z" G
                          
, N& t* n9 W) }" @1 d! l. K2 P                          ; O8 v1 N1 R: J' w6 W# R
                          ]
" U. l0 F! S+ pend" M+ b% |( m: J) t0 e) e

0 u& `  N" b% X' j* j# `[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,# r' E* D& ?2 }* \! E8 i" ^& a% b8 _
应该是& |9 w( f; n6 b; _6 l' i: N
ask turtles [
1 X# y: ?/ a" l# Z! oif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) $ w5 r7 }$ ]7 Y! c; t; j) |( E% X
                          set y  Dep / 2 $ A# }, B5 ^1 p* H; h) F
           set b  int (who / 5) * 50 i# T( M( E+ A5 ~  h: R- G( `
    setxy ( xcor-of turtle b + x )( V& Z; N, l: r4 D9 b& ]
          ( ycor-of turtle b + y )]]
% c: D7 Z; ^1 M# S9 H3 T2 o3 Vend
( Z% K9 N# M+ n% ^9 U) z7 b- }之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-9 01:03 , Processed in 0.019144 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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