设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8206|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
2 B1 V* x: g( R& m5 p& {, O2 b; b0 w' E
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
3 A# a; ^1 _+ X, A. Y/ o5 x$ i+ U4 U; L$ y8 B# s% u
turtles-own [a b c d k f g h
! N: n' w& B1 t% Z9 X9 S  T  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 0 l3 T0 j& n1 t  x  `6 w8 L2 e
]. h# E$ n8 |1 Z9 [6 D
to new
; M) v1 Q# o5 u  ca
& T; V& \- J; Y  r  crt 5 * num_of_building
. x- l: l5 D9 U  F9 X5 X  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
+ S( m8 ~! Q9 M' t8 I  ]. U) T  scatter     ;;keep center-turtle random positions " u& v, q$ u+ n( `! D3 J- S
  unit_plan   ;;make up the building plan
4 S; V2 S/ S5 `; fend: T/ X2 d. h3 M% O2 I( I5 i
to scatter7 q0 g( T0 G/ q; ~$ [% M
ask turtles with [remainder who 5 = 0]- {. p4 p% z, s) I6 E
[$ o3 j$ R* v9 _4 x/ \  p1 I
set xcor xcor - 6 + random-float 156 E3 @; L( I$ p" ^
set ycor ycor - 6 + random-float 152 S! l0 M& {* i1 m8 \% e8 A
]* y" Y- P8 k- y& x3 U
end/ F3 C: Y; q# ~$ d- j7 A: _, O  L
to unit_plan
0 i+ H$ V' J& Q% D0 i  t2 O- n  Gask turtles [; C/ V+ h- S, F8 Q  J/ V# j
if (remainder who 5 = 1) [set a who
5 ]; V5 x: ^' l' p/ u                          set x ( 0 - Wid / 2 )
- [7 T% m6 w+ U% l                          set y  Dep / 2 ]' Z1 R4 w$ O* Q
           set b  int (a / 5) * 55 d9 {% q! g) n; w. q# n' a
    setxy ( xcor-of turtle b + x ). C  g4 O8 Q# ?" D, \+ [
          ( ycor-of turtle b + y )
1 L% S6 g# W. y  J0 ^if (remainder who 5 = 2) [set c who% W4 {# ^6 y/ @7 f& t
                          set x ( 0 - Wid / 2 )
0 S; U4 A! V" H+ Z                          set y (0 - Dep / 2 )  ]  a# v- m3 s# S' {
                          set d int (c / 5) * 5
  A& o1 k2 t2 G& O$ f: ^   setxy   ( xcor-of turtle d + x )
8 }: \/ B% M& ^4 }& v& [           (ycor-of turtle d + y ) + x) Z) P4 I3 d
         
& u/ m* |9 S" @7 C& T7 k            0 L& O! M) m: T1 ]8 S  X( K. D6 |
if (remainder who 5 = 3) [set k who  |( N8 x& t; n- K% ?
                          set x( Wid / 2)  - Z. x  V7 W8 ~" l
                          set y (0 - Dep / 2 ) ]
% m- K3 j$ R$ n8 Y, ?6 V7 R                          set f int (k / 5) * 5
9 s7 M3 h1 r+ g+ E  setxy   ( xcor-of turtle f + x )
2 }! [& }' P1 X: G           (ycor-of turtle f + y )
' Z; I# v% h- y& s% q           
( X$ k' J; b3 g& i5 u           
  ?7 E. ?2 B4 {" L/ q6 A6 Oif (remainder who 5 = 4) [set g who8 ~% u4 W/ {* _
                          set x Wid / 2 3 r& H! R4 I( w" z9 t! d1 W2 d& v7 U
                          set y  Dep / 2 ]
. e3 Y  h; O% |) D& a                          set h  int (g / 5) * 5/ X1 y. z1 y& D: L/ D
  setxy   ( xcor-of turtle h + x )' K0 l" O8 n9 M6 J+ \
           (ycor-of turtle h + y ) 1 |( M" e, ]8 ]; y2 w" N
                          
0 f) J( T9 H2 g% Z) b                          
, N2 @' w; E6 r$ ~% c2 b% |                          ]4 B7 m3 G, D3 R  R6 T' R. y
end) V8 F  i) ^# E2 b0 i# I
# `, `6 c5 T1 F1 a- H: I: K
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
' k" c+ V; `! Z# E# O- \, x应该是; X% h* Q2 M$ j" E8 e: x
ask turtles [
" A; b1 j! F- n+ R6 m- o5 t! }' ~if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
0 }7 Y, ^2 V& r7 {                          set y  Dep / 2
' \3 `6 C9 C% t% Z0 j2 ?           set b  int (who / 5) * 5  {8 P. y( F' T, c$ h' R6 z
    setxy ( xcor-of turtle b + x )
" A" J! W5 K( a: R          ( ycor-of turtle b + y )]]( m% I9 N  p, U. m! w
end6 G' r% I4 _+ r0 H$ Y7 Q3 @- }0 \
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-18 20:33 , Processed in 0.017117 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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