设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7769|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
$ L9 Y  b6 a: v6 l( T8 _, T/ P9 |, u3 h
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。' V7 t2 |% c7 o0 D

( [/ `, K* o; x" T1 rturtles-own [a b c d k f g h
1 u7 L7 I* S: a- w  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
, y6 n6 E0 I5 f0 H% q]
* ^0 M+ z/ M& H8 G8 Sto new! Q8 r, [8 [8 r2 S9 {5 {% |/ v2 d
  ca
# P! g2 u7 o  ~# }% z9 b* P8 `* A  crt 5 * num_of_building
* s2 O- G# G! x  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
. R0 z! G  @: ^  scatter     ;;keep center-turtle random positions 9 ~. z" F' g( B2 t" P8 _3 v- o
  unit_plan   ;;make up the building plan
! x9 q4 O% G3 }end( f1 h4 p  E. D6 _: Y
to scatter# A+ b3 H1 _, n& F; L2 d  {
ask turtles with [remainder who 5 = 0]
; O0 l5 a2 o9 j0 D[. X- d3 F% d" _1 X
set xcor xcor - 6 + random-float 15
* Y5 \5 K4 Y4 @; `# r- @# G; tset ycor ycor - 6 + random-float 15+ b; X# D. u4 ~5 M. G3 f; P4 N5 M
]- }0 q* [' t4 `% u- o+ \
end! q0 p: W0 b. B5 R; V! f. H" q
to unit_plan 4 D- w+ m4 H3 H7 h/ J& L
ask turtles [
: p% T, m. i0 L$ W; `  d; @7 p; fif (remainder who 5 = 1) [set a who
/ l  i: r7 X0 p( M# h- H                          set x ( 0 - Wid / 2 ) & r; `: q0 @1 N, K: J' {5 S; W
                          set y  Dep / 2 ]) Y; [8 x/ X4 v/ S" g4 ~+ h
           set b  int (a / 5) * 5
. u8 w. c) w$ [1 s1 V    setxy ( xcor-of turtle b + x )
/ f& |9 a# S& A9 p3 B$ P* W6 ]          ( ycor-of turtle b + y )
, U8 Q2 }/ t8 N$ e( Y) l, Dif (remainder who 5 = 2) [set c who
/ E; ], v1 B* D9 c- m                          set x ( 0 - Wid / 2 )
& e# ~- F  o9 L7 `/ l4 t                          set y (0 - Dep / 2 )  ]; ~  j  x5 J6 v$ _
                          set d int (c / 5) * 59 U" L# \+ W) u+ n
   setxy   ( xcor-of turtle d + x ): [7 y/ o& ~" y9 }1 n3 z
           (ycor-of turtle d + y )
( J3 W( E! C- j7 d* V& z          0 j9 M& J5 f! I( l8 i
            & F# K( c! L+ N3 Y
if (remainder who 5 = 3) [set k who
3 [! i  h6 z) U* j& E( z                          set x( Wid / 2)  
: a1 j3 G  `1 J6 M; G2 z" ~                          set y (0 - Dep / 2 ) ]3 i4 Q. a& P1 {8 \, S6 n1 y
                          set f int (k / 5) * 5) Y6 K' j7 @; O3 k) A. _8 p
  setxy   ( xcor-of turtle f + x )
: J& B2 [7 Y* L4 L- O' a) m, W           (ycor-of turtle f + y )
: M1 G/ D# E$ |  `5 R: N( [           
/ c. n' K% V0 t0 t( |, w           ! R9 a6 k; m6 `* I, s( N& m
if (remainder who 5 = 4) [set g who
  h( Z# z' e* X  f1 g' P3 T                          set x Wid / 2 6 y3 l0 l( ^3 H4 ]1 _2 ]! x
                          set y  Dep / 2 ]
7 \2 m% F9 R' ]3 [8 m" s                          set h  int (g / 5) * 5& f) C2 g; a. h1 i8 m! W  t
  setxy   ( xcor-of turtle h + x )
0 w6 o8 w& m: p! n+ Q, d+ M           (ycor-of turtle h + y ) ! Y4 j0 S. X0 L, {1 ?& J( w
                          
* ]$ E8 y( }9 _: S0 B/ j) T                          
5 d  m" W! i: e                          ]# X" z6 [0 d6 K
end# k% x  L* X' M/ B! g( {
' }  q7 i3 y1 o
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,/ @4 d, l4 l3 H
应该是7 q3 I7 y" \( N3 k
ask turtles [5 |( J4 f# o* ^2 z" R$ t
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 0 h) t; l8 F! f
                          set y  Dep / 2 ! N$ j) ~; l& h4 m6 C3 c
           set b  int (who / 5) * 5& U% _- Z* _# ]8 A2 c" x
    setxy ( xcor-of turtle b + x )
+ h) s7 g/ h* d! @          ( ycor-of turtle b + y )]]
/ O% V* U( y; E0 wend- @. A# J$ @$ x. I" ]/ c
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-28 11:14 , Processed in 0.022197 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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