设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7098|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。( U  G6 ?7 B" R

* R& P- m) }, B但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
9 B0 O1 G* z1 P$ B% M0 H; P- ?# t5 C* E/ h+ U( I% n1 j1 M
turtles-own [a b c d k f g h
, F- o  A, ^" |; H* H  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ) K! B8 I" H2 Z9 b$ V' _1 u
]$ v* w0 d" w. x1 n8 H# V6 U
to new# P3 H; K: l! A) T4 J. ~0 Y2 g; S
  ca3 c, F. x' H* n7 s7 B0 ]
  crt 5 * num_of_building% x' x5 \! {4 i% B  H7 Z8 x
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]$ u+ l& u) r( S* i8 X
  scatter     ;;keep center-turtle random positions 4 I$ ]6 Z1 M4 o4 G2 k$ H
  unit_plan   ;;make up the building plan
1 ]/ D$ z* d* b/ Qend! T$ L' D8 R- X# F5 H" g6 H
to scatter2 J4 k2 d% `* P
ask turtles with [remainder who 5 = 0]
! b- v9 @: I9 I) n, {* I2 n( V6 I[
8 [# O6 y( v- d4 Y4 J* W" aset xcor xcor - 6 + random-float 15
5 j! Y. c% c4 y, ~* U: nset ycor ycor - 6 + random-float 15
* J6 {( c; W, J]
' N8 L' D& K0 h9 \) a( _end
- [; N3 R4 `; f1 O9 A0 B" m6 \to unit_plan 9 i+ |& a; z8 F# [* b4 e
ask turtles [5 k8 Q; ~0 E; G+ p7 o
if (remainder who 5 = 1) [set a who
& p4 y0 y8 s/ g% {0 m# w7 }                          set x ( 0 - Wid / 2 ) " {1 n6 I4 @9 O( B+ q
                          set y  Dep / 2 ]9 g9 ?2 R: G  f
           set b  int (a / 5) * 5
" h# L# M5 B7 h9 p5 s- g; {9 z9 G    setxy ( xcor-of turtle b + x )
$ V! {* s! ?' P5 V  ~6 T          ( ycor-of turtle b + y )
9 d' V, g# n* C/ cif (remainder who 5 = 2) [set c who, S1 o/ Z' f# {2 H7 }4 {4 @
                          set x ( 0 - Wid / 2 )
) G7 X3 a' e7 Q: ?  I$ H                          set y (0 - Dep / 2 )  ]
, M8 D' Q* Q6 [; T4 P* G                          set d int (c / 5) * 5( P- y5 |7 d0 T- T( W
   setxy   ( xcor-of turtle d + x ). ^- u* X+ @* f% l+ Z* Q! d6 R
           (ycor-of turtle d + y ) ; o0 l" s! {1 S
         
' P* v0 G: v: ?* K! M- O            
5 G" K0 s8 n4 @' Bif (remainder who 5 = 3) [set k who% I; L6 R2 X! B2 f4 }& N
                          set x( Wid / 2)  
; _5 W- x- m7 p! D/ O( G5 e- d                          set y (0 - Dep / 2 ) ]5 P! E' |. q6 Z  l0 g5 Q  O
                          set f int (k / 5) * 5
- o' I4 |2 k( |  setxy   ( xcor-of turtle f + x )
" R: p3 L/ S) \1 \, C( e' ^. z           (ycor-of turtle f + y )
, C/ T' s2 M; e+ C           
% R2 t3 v% L' P. O/ x& m           / V, V" h3 s; W' l$ u4 e5 E2 E
if (remainder who 5 = 4) [set g who/ L+ F/ f( B- T/ H
                          set x Wid / 2 % O0 ^) F+ L! x9 R+ D" r! |+ e
                          set y  Dep / 2 ]
6 W3 w9 p, p9 W  w. V                          set h  int (g / 5) * 5$ }$ g: i; Y5 m) I
  setxy   ( xcor-of turtle h + x )
* |, t* K% A9 U- K# c           (ycor-of turtle h + y )
7 h  S8 ?# @: P6 ?2 F0 t. c                          2 L$ G. e  g- v
                          0 D: J# l+ p4 ~/ r
                          ]' ~( n, }! q+ d/ b
end% d$ {2 T$ s- a$ ]4 c3 o( Q6 H
3 e1 ^/ R$ Y2 @* i. n2 H  Z/ D, O/ J1 M
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,3 ]4 _0 V7 q6 K& y8 d
应该是1 l$ p& ]# z1 X
ask turtles [. K1 b3 V2 x- n* |# m5 [
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) . Q# Z) k1 M, V, S# k" \* W
                          set y  Dep / 2 0 m. W' V$ J2 z- B
           set b  int (who / 5) * 5. H4 r2 A. }2 Y, R9 E
    setxy ( xcor-of turtle b + x )0 S# P$ Q9 p9 L  u
          ( ycor-of turtle b + y )]]" z% h& F# Z0 m) l% U0 d0 N
end
$ d& v& O( g, e' ?; T之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-30 07:52 , Processed in 0.019955 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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