设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6790|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。; I3 e7 `1 c& i+ n2 p. y4 b

" }: p6 P3 _0 ]' h但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。1 ?# d6 E$ ^# p4 i5 k  V

% U1 D4 z) g: S9 h% M! r1 Gturtles-own [a b c d k f g h
2 ]9 Q! c/ L$ K9 y  x y     ;; these are the leaf-turtle's offsets relative to center-turtle % ~0 b# t* w7 h4 @1 A# N
]; _: {+ P: y0 S
to new- j$ O2 u3 z, k# ]& O/ \6 G# |/ m% P
  ca! w/ E/ i4 ?; O; o( c+ E7 V3 H' x
  crt 5 * num_of_building
3 m: [' t  F: G" A% ~0 j  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]" e/ ]$ p3 M8 k. d, p8 b
  scatter     ;;keep center-turtle random positions # E/ ^3 ?0 \! M/ W7 U8 f
  unit_plan   ;;make up the building plan
+ X9 R: H' m  h* ~. hend
6 M/ U1 C! S7 mto scatter
, i' }( f7 i  E9 t$ uask turtles with [remainder who 5 = 0]
' R6 }+ N* n, }6 z9 k& H0 q  A" V! L) `[
  b' k/ S: ~- Dset xcor xcor - 6 + random-float 156 @5 e% N& Y- ]/ K
set ycor ycor - 6 + random-float 15+ ^; I% a7 f) h$ e
]
; ~# \( x+ L, f6 A- H7 v; g) _( Lend
2 ]& b) @; B) J1 v7 Hto unit_plan , F6 N; S( L& `
ask turtles [+ m# {# D9 H" r) I- b$ I1 S9 \+ Q
if (remainder who 5 = 1) [set a who ) S0 C' C) u* U2 ?4 y2 P6 R
                          set x ( 0 - Wid / 2 )
: M1 B0 H1 X8 r! J# p                          set y  Dep / 2 ]/ f+ h6 l5 r9 S' @  G4 ?7 N
           set b  int (a / 5) * 5
% b& f; \# l- B) P    setxy ( xcor-of turtle b + x )
1 W. P7 n' y5 O0 I7 K' z          ( ycor-of turtle b + y )
/ f$ H) f8 ?5 _% F2 j+ e7 ^+ [* Hif (remainder who 5 = 2) [set c who3 s- [! {" R6 v& C( x  h. w( C
                          set x ( 0 - Wid / 2 )
8 F4 _+ V3 y# @# t. I/ w                          set y (0 - Dep / 2 )  ]
) r- P6 Y0 w$ p1 m: a                          set d int (c / 5) * 5
; [6 P3 ]0 o/ _- K! ]   setxy   ( xcor-of turtle d + x )/ w; Q' d. `7 u7 l3 m/ A7 f$ r
           (ycor-of turtle d + y )   p/ W% w' X2 M$ n0 G
         
6 U1 g' z6 G+ ^            
! |0 x+ I1 _9 V0 D4 Wif (remainder who 5 = 3) [set k who+ l! ^, i% j3 Q5 A- b: F
                          set x( Wid / 2)  
; }) A8 Z- e! w5 ?% a                          set y (0 - Dep / 2 ) ]
+ _. ^1 y  g) c4 G. `  K/ U                          set f int (k / 5) * 5
. S; u4 y2 K  R. A& D$ w, E& B  setxy   ( xcor-of turtle f + x )
: g$ c* N  g8 g! }; j# p- J           (ycor-of turtle f + y ) 3 y. K3 n, ~; V: ?- o) p8 b
           
6 }- f# r( L  U, X9 p           
; {: m1 p8 x/ a, k* G9 N- q0 dif (remainder who 5 = 4) [set g who
# b$ l- A6 z: j2 O, Q) m0 |- ~: R- j                          set x Wid / 2 6 f; B8 R9 |7 R9 L  K
                          set y  Dep / 2 ]
5 R8 X* m; o7 Y9 j) I  s2 g                          set h  int (g / 5) * 5" X: {& g. O# V8 \
  setxy   ( xcor-of turtle h + x )) V5 Z" A. H# x. ~* n/ x
           (ycor-of turtle h + y )
4 j) c% j: u' z                          
+ v! L. t" ?( p- e7 [  ?* j1 P; g                          4 M& H; }! J- q
                          ]
# N. w. i4 ]. P' y+ F2 Jend5 X* k" |! Z9 y. ?

8 T2 l; \$ S, ]. C- d) h[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,0 w  ~/ G! w1 `! w/ r9 l0 D
应该是: f0 L' i( A# d) \
ask turtles [6 ~4 q% _1 d4 p3 o1 \
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 6 x* \6 `( t6 Y  Z6 `7 w$ s) s( Y
                          set y  Dep / 2
+ O6 L: U4 C: P           set b  int (who / 5) * 5
* {9 p; }# [8 C2 o1 z" x    setxy ( xcor-of turtle b + x )
4 E; l) K4 A5 n; u9 t% B          ( ycor-of turtle b + y )]]
1 g3 [  e: F2 U$ o1 }: Wend
) m9 X8 q, a' k! F& w之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-23 13:39 , Processed in 0.018211 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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