设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6743|回复: 1

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

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

! v9 L9 p. k+ q6 ~但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。, Y& o; a* Z( P2 S* ^

, R: ~& G  y$ Wturtles-own [a b c d k f g h9 z, W  c  b6 U- Y2 S- n
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
3 y( e0 t" I2 x. |3 a1 f5 H]) q1 I, q: F; |& A1 J8 C% I! B2 M
to new0 C6 Y2 @+ f1 f' n2 c* B* \
  ca' `" V* C* o, K) l9 S, T; D
  crt 5 * num_of_building/ {! }: \5 ]8 J5 @
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]], }- D  c) {7 ]5 M
  scatter     ;;keep center-turtle random positions - a( P" o1 x+ d3 k" F7 f
  unit_plan   ;;make up the building plan; r6 p/ L" M1 [% }4 p3 s: o7 T
end# F  c% @- _, x0 d
to scatter' `9 C' V4 T, Z1 D. Q5 e
ask turtles with [remainder who 5 = 0]3 ]8 p$ I7 y3 z( T% K' \8 y7 N) j
[1 `+ l3 f" d  n3 f* e) o3 a
set xcor xcor - 6 + random-float 15
  I% j5 e1 {. k( A  Rset ycor ycor - 6 + random-float 15
4 ^7 c+ I+ h6 [' Z* r; a1 c( z]$ q* z  c, [2 W. z
end& M8 G' \" A" B! e5 }! x9 C5 O
to unit_plan
  ^' a9 \% }9 D- z2 o0 E8 b: wask turtles [3 @; k% `1 E7 E7 D' R/ l
if (remainder who 5 = 1) [set a who
+ P# X( v2 H/ A# k- {. s2 [                          set x ( 0 - Wid / 2 )   h) q* x8 O) c8 J9 c+ g) H
                          set y  Dep / 2 ]
5 Q$ o8 [8 a2 i* t! Z- I           set b  int (a / 5) * 5, x+ V/ ~9 W# P; z5 h
    setxy ( xcor-of turtle b + x )% v9 l: e1 P  o
          ( ycor-of turtle b + y )
% L- t4 F- a) T6 ^: V% [if (remainder who 5 = 2) [set c who
0 d2 S" v# l; p- P# y                          set x ( 0 - Wid / 2 )
) |4 F; @. d$ E) v                          set y (0 - Dep / 2 )  ]
( D% x& K: ~  `! f+ U5 x                          set d int (c / 5) * 5
6 X5 k: h! F; C& Q5 `0 i+ I8 T% n( `/ B   setxy   ( xcor-of turtle d + x )
+ Q2 H2 M7 H& {# c- [4 I           (ycor-of turtle d + y )
$ q1 ?0 V/ ]( ?* d6 x. {; R          - f# \  H; b( f3 P; w
            
8 N6 x! ]( U3 H  Sif (remainder who 5 = 3) [set k who
' A9 e9 }3 e1 d4 P) |                          set x( Wid / 2)  : w) z! I$ ~  i" n7 ]# ?
                          set y (0 - Dep / 2 ) ]
8 C. P5 h3 a8 S" s6 t/ K/ g                          set f int (k / 5) * 5
7 ^: o; F+ |- J# M* f+ z  setxy   ( xcor-of turtle f + x )1 z# A+ @& s5 k9 T2 ]
           (ycor-of turtle f + y )
' h; d8 X& h. N           1 ~' P* ^+ ~1 u# L' k0 E2 X4 G+ q! T8 ?
           1 o5 m  N5 Q5 [
if (remainder who 5 = 4) [set g who
' Y2 F* l5 m% w5 E. c                          set x Wid / 2
1 Y  |& g  g/ j% }/ \3 d1 R( L                          set y  Dep / 2 ]+ E2 D3 _; _' s: F9 a
                          set h  int (g / 5) * 55 j8 A  e9 J9 j( R
  setxy   ( xcor-of turtle h + x )
% C* x  X5 l/ D" a9 S8 v- \; j           (ycor-of turtle h + y )
; |* o) @% G1 X, P                          ( f% \& E6 d9 q; n0 x
                          
. V; E) U* `# X* {; t                          ]
: {- Q: e) Q. x6 @' Y  ~. G. Pend
4 f3 A" b/ @$ V0 q) N) `- D( t: f+ ]+ f4 T/ f  k  F4 F% u
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
1 C- X7 Z6 W" ^# q6 U! r. D应该是" `1 R5 a' R+ }) l) p- b* h, B
ask turtles [' Q; t8 d0 D8 S+ Y8 n
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
* N! m1 s, T) L$ U0 h% k                          set y  Dep / 2
* K  R+ u( i0 t  F3 Q7 h) k9 n1 F& e           set b  int (who / 5) * 5
8 v6 I7 a- R9 c; }) c0 d! }8 ?1 N/ _2 `    setxy ( xcor-of turtle b + x )
5 ?. n# n& X8 F7 ^. U+ F          ( ycor-of turtle b + y )]], x  x. a: L  \
end# U9 g9 Z. A6 @6 b% J- b  B) b# _
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-19 18:06 , Processed in 0.020119 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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