设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8504|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。. e/ K9 \, ^* P) j

% o- h+ i, T" V. {但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。, ]7 v8 f- E$ i

) M0 v9 D$ T! i: U6 ^5 `9 B+ p+ p; wturtles-own [a b c d k f g h
5 i* ]* j  D% }  @7 I& N$ U1 W  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
3 M* x* s$ a3 F! R, v. ?$ Z]8 h9 z  ]" x. U
to new2 W5 K* `4 U& y- O
  ca
. X) e- E  M/ e; g, z  E1 n; y' H  crt 5 * num_of_building6 O0 U. e3 j/ T( n( J
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]7 ]  g/ i; b. b' a0 k
  scatter     ;;keep center-turtle random positions
' e, b7 Q: N% F, p% M/ S7 ~  unit_plan   ;;make up the building plan
  S3 f6 h/ E- z. Jend
% q. ~# t( i3 n! s0 @: u6 b* ?to scatter! ]: v/ s* v, |0 I5 ^& J
ask turtles with [remainder who 5 = 0]
: N- ]) c9 u, H% m9 B- a[
  v: `7 G  U: |6 Z9 yset xcor xcor - 6 + random-float 15
8 ?  D, R) N  cset ycor ycor - 6 + random-float 150 @* ~, n6 ^% r$ @' h' x; ~
]( j8 K; {' d. x0 ?3 v4 V
end# o/ D" J3 g/ q5 A! p: y: e
to unit_plan
! \( _: s' W8 mask turtles [7 n5 u  N8 ]: L
if (remainder who 5 = 1) [set a who   b6 D, M1 D6 F- m/ X  F$ Y  z
                          set x ( 0 - Wid / 2 ) % q+ G% e1 T0 `- A
                          set y  Dep / 2 ]
+ _5 a4 i; J; o3 p* q$ v1 _3 L' }           set b  int (a / 5) * 57 v' D- n! k8 }4 l! w$ C
    setxy ( xcor-of turtle b + x )
: X; P" V4 A* c# o; D          ( ycor-of turtle b + y )! m5 G0 @; q/ T) F1 Q
if (remainder who 5 = 2) [set c who
: I8 n; F' N* D4 S% o' I                          set x ( 0 - Wid / 2 )
8 i- m5 n% s* p1 r- s0 m* N                          set y (0 - Dep / 2 )  ]
+ Y1 c# C+ e' i2 i+ g                          set d int (c / 5) * 5
, ~* n9 v: c; ?. }   setxy   ( xcor-of turtle d + x )4 W2 I+ g4 O3 D2 r  l" j, [
           (ycor-of turtle d + y ) 2 D* @0 W: }* L0 R3 h
          5 T  S: ^6 a* f, E( T) }; U
            4 P" u4 T. ?; W9 p0 Y
if (remainder who 5 = 3) [set k who& t9 q7 _) U3 e9 `4 N
                          set x( Wid / 2)  
/ w( `# I5 o+ P& y. `                          set y (0 - Dep / 2 ) ]# Z" S+ h. D/ b* V6 c3 r
                          set f int (k / 5) * 5
. W/ q3 K/ |5 W! |5 @9 M& I6 X  setxy   ( xcor-of turtle f + x ); ^2 z; k! ?& P" v# H+ @
           (ycor-of turtle f + y ) . ]# i' O! V7 I. {6 {& Y7 A
           / h% E6 l/ ]. U4 Q% c" ~) Q* f, g
           
2 j1 P/ `0 [# J* Hif (remainder who 5 = 4) [set g who
) D! q; z$ V  I$ f                          set x Wid / 2 % L# @3 c5 m- N3 G& R% ]: n/ _
                          set y  Dep / 2 ]% X, x$ a8 b" O/ P
                          set h  int (g / 5) * 5
, J% r+ P# ?6 [  setxy   ( xcor-of turtle h + x )# G, r7 {0 S" W
           (ycor-of turtle h + y )
% A# g# O# l/ G6 q2 B* E                          
! y& o- n  s, G  T7 c0 @/ D9 J! c                          
  e0 [- v% ]; @& [1 }# ]) H& V                          ]
- x( T" b/ b6 Rend
' t! Q# M2 r) g, t% W
2 Q1 t3 A2 I, I5 G' H7 x  }[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
/ [1 n" U+ A+ {应该是% J) B5 P' l" s! x
ask turtles [
8 c1 R( e- ^# Q+ h2 Sif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
$ N* D# F* o1 p  ]6 t# c                          set y  Dep / 2
, J% V4 S9 O3 B           set b  int (who / 5) * 5
# C, I" p% t5 {$ S1 [    setxy ( xcor-of turtle b + x )
4 W9 ^; K" ]$ I$ ~' {% \          ( ycor-of turtle b + y )]]" V3 Z. M( b) o& T( T# j9 h# s
end, t. p( e2 P( n+ Q* I8 x/ d
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 06:40 , Processed in 0.012820 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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