设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8870|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
+ \8 E2 D1 ?% m0 H: x& J( d# O0 D! n) N! i) K
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
4 K% i2 G* h1 Q7 y+ g% P2 a# T: p4 P* X4 {2 h% D5 }, v
turtles-own [a b c d k f g h0 O5 s4 e  b, S5 _9 N
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle * I" F0 z! ?- @5 O* L
]
& l. p# z# ^8 k5 C- gto new
; H& k2 B5 _8 t7 w; _0 Q  ca* f5 k" K- I9 V) r- `# ~9 |6 X2 d
  crt 5 * num_of_building
1 [" v3 {" m# {* x  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
9 p+ s& P7 \3 R6 n0 k4 i  scatter     ;;keep center-turtle random positions 8 y9 q" c# h8 S! s
  unit_plan   ;;make up the building plan
" y& j- J- z' x( j7 N2 n7 Mend
# b( \% O! F' u! i" Lto scatter
( I: g) t; N! g8 N, ]# `ask turtles with [remainder who 5 = 0]8 ?( ~$ r8 l  W
[2 ]* P1 `0 {/ \% s* g
set xcor xcor - 6 + random-float 15; B% k$ z) b0 g' G0 T
set ycor ycor - 6 + random-float 15& K6 s* B3 N0 J/ c6 t. ?
]
+ ^7 \! I- s$ T0 yend
* _$ A! R5 L; B' }7 G# S) ~to unit_plan 1 y8 [7 L/ h/ r+ G7 N
ask turtles [
* e' |( o- n% `if (remainder who 5 = 1) [set a who . o, y6 v. A2 E1 P2 Y# T
                          set x ( 0 - Wid / 2 ) 0 C+ U& _5 E/ ^* N, g3 k# {& y
                          set y  Dep / 2 ]2 P& D# ^5 e7 J( [8 K, b0 o9 G+ J
           set b  int (a / 5) * 5
) f6 {* J; @; B% G* f* \0 n    setxy ( xcor-of turtle b + x )9 ]0 A; w  Q* R& h- D$ \
          ( ycor-of turtle b + y )
2 C. }! x, W. A/ Qif (remainder who 5 = 2) [set c who
2 f. ^2 q9 T) r- G1 X# Z                          set x ( 0 - Wid / 2 )
$ J4 F9 `; p/ P0 C* }4 \                          set y (0 - Dep / 2 )  ]
) c1 C( \! d2 w                          set d int (c / 5) * 5
1 u  N8 f4 i1 x   setxy   ( xcor-of turtle d + x )
: g2 b+ ^5 @$ j% q           (ycor-of turtle d + y )
, Z6 G5 T3 e* [& a( Z         
/ M3 o8 D6 b8 t$ S, v: O+ M              B1 q5 k8 `, {' G) x* p
if (remainder who 5 = 3) [set k who
5 Y1 n; ~3 v) y2 d+ F( H, [: }$ y+ d                          set x( Wid / 2)  0 ?0 C$ I  T2 \
                          set y (0 - Dep / 2 ) ]5 w1 x* i% P6 _6 V* B
                          set f int (k / 5) * 5! f' I5 E% ]) I8 U2 i& F5 @  j
  setxy   ( xcor-of turtle f + x )
* Q6 g4 ?7 ]6 \* i4 j) G- b           (ycor-of turtle f + y )
# ~- z& e7 j- |# M* v           
1 n* q2 b3 g2 j' w- _$ h           + Z/ C% p. x0 E8 ?
if (remainder who 5 = 4) [set g who* Y3 Y! N; q" ~8 j9 D4 X, t9 Q. m
                          set x Wid / 2
  c+ T/ O6 S. f9 |( z# u8 ]. }" o1 X- I                          set y  Dep / 2 ]" {. O$ H2 C" q$ Y$ q9 N
                          set h  int (g / 5) * 53 z5 P4 w: ?9 o
  setxy   ( xcor-of turtle h + x )
) v- _( _, c! U           (ycor-of turtle h + y ) 1 j: R' g3 l+ ^$ H
                          ( ^; ]* n& `. y% B: J, a5 a  R
                          * c$ t8 i1 n- z, P6 Y' R9 S
                          ]8 A* k, N5 a# f, g2 f- J
end  z3 M7 M7 B# ?; `

* f6 x& v0 H! ~[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
0 P1 j3 b7 s6 Y# o/ t* e应该是
& E7 l& n$ t, C' g. Wask turtles [, Y) j3 T& K/ m
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) & }  J: M$ b4 y! }
                          set y  Dep / 2
5 N* O7 c2 o+ M5 L1 n           set b  int (who / 5) * 5
9 S0 W. x. ~' P2 d, K( r2 g1 g. K- i    setxy ( xcor-of turtle b + x )4 H7 n' Z: V) l. R% z. w
          ( ycor-of turtle b + y )]]
' b+ C3 G! Q) A+ d! Send! l3 c5 y- z* F0 l  p+ r6 U3 ^1 `4 o
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-14 13:55 , Processed in 0.022823 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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