设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8233|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
* t" M/ u$ B* |$ S- G( r# H4 r6 g+ T% I  \$ j
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
3 h( l; q1 E3 i1 l( p' i2 I& o& M$ v) T% m6 @( g0 _
turtles-own [a b c d k f g h# N) I2 D5 x9 c* Y) ^, c4 v9 n* u5 ]
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle # B5 p. G# l2 j1 c
]9 C' v; [1 @4 J+ ~( ~6 q" H
to new5 ^. x; Q% O( {/ K! v+ f
  ca
3 s! V( N5 s& j  crt 5 * num_of_building
  h$ v$ ]0 T0 u. {$ e9 i4 V; E  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
. n! t6 a. \. A. g  scatter     ;;keep center-turtle random positions 4 Z0 t5 B+ \& Q) S' U
  unit_plan   ;;make up the building plan% Y& V( l) ?  B" N4 j* C# l; M
end
& C8 G" z1 h# i9 X  Ato scatter& _. Z: v6 `& [$ h7 r4 T
ask turtles with [remainder who 5 = 0]
+ V3 |: X& J4 I; ^[1 O* E- g/ `( R! S
set xcor xcor - 6 + random-float 15- @+ K! P  A* ~% Y
set ycor ycor - 6 + random-float 15
* a, ~0 x6 Q# d: _( ?]
; d6 ^% i( i+ H3 h. Xend6 T4 c4 c2 N) a* _
to unit_plan 7 u6 Z$ R3 w, p# f- f, u2 d
ask turtles [
1 X* N, c5 f9 c' G6 d9 z! B- |8 aif (remainder who 5 = 1) [set a who 9 m9 r$ m9 G: w# r5 L" ]: G  g
                          set x ( 0 - Wid / 2 ) : Y' j- q9 l/ ~
                          set y  Dep / 2 ]
# p+ k* G$ n7 Y& x5 e& k  t           set b  int (a / 5) * 58 V' [1 W3 O7 d' @
    setxy ( xcor-of turtle b + x )
, r9 R) z2 }8 h4 j          ( ycor-of turtle b + y )1 t( x- E: f/ O* _  e
if (remainder who 5 = 2) [set c who0 I8 W8 P( \4 y0 y) J$ b
                          set x ( 0 - Wid / 2 ) - N7 h& @( l$ t! C7 ]1 \) z
                          set y (0 - Dep / 2 )  ]
7 O4 v# Y& c, ?" h                          set d int (c / 5) * 5
' J" s1 j& e& k' ?& `2 Y   setxy   ( xcor-of turtle d + x )! Q0 q* |) E* l; s0 R0 a
           (ycor-of turtle d + y ) 4 S$ Z  Y4 i! a( W( T7 S
          1 Y0 w3 I5 a2 O6 H; [
            7 g* @$ j# i5 [
if (remainder who 5 = 3) [set k who
) i- ^; P' p9 }  U; Z: r                          set x( Wid / 2)  
6 l! o4 B% c6 R# w" _* s7 j                          set y (0 - Dep / 2 ) ]' X( C5 D1 b3 Y1 F
                          set f int (k / 5) * 5
  J% i5 Q5 X$ r# ~: Z. b9 F  setxy   ( xcor-of turtle f + x )# i+ i6 K' j9 ~  b
           (ycor-of turtle f + y )
! `; g! C- ]  B- q: H" s/ B           ) E6 h- B* o- K# p6 S7 ]
           
* b1 L  U+ R) Lif (remainder who 5 = 4) [set g who* w" p5 z! ]  B& Z8 \* k
                          set x Wid / 2 . m0 K  Y' S: z
                          set y  Dep / 2 ]# t  Z4 Y/ P" V+ S% T
                          set h  int (g / 5) * 52 c. p: ~  @0 \3 F1 p7 q9 M- d( {
  setxy   ( xcor-of turtle h + x )* ^# L  A; p& C
           (ycor-of turtle h + y )
* ?) i# \' m+ x' u* u' z  }1 r                          
8 U; l5 {# l1 R7 |0 ~                          * C$ |% [" A( Z0 u7 w9 g# D
                          ]
2 K, P( e2 F. L. o* gend
2 k0 m9 _( }8 D& U! _; [1 |. Y- v# S8 g
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
3 i" b) [, {$ v9 y& u3 O应该是
; c. e' d# D" O5 Lask turtles [  @) K3 `; x, s1 N- N1 j* E
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
; J2 p6 W- ~! s. `* i9 O" n- \                          set y  Dep / 2 ( u# k5 X$ l+ Z9 w
           set b  int (who / 5) * 5
! f  d' S4 o; n    setxy ( xcor-of turtle b + x )
/ _+ E& E. w5 |  D8 d' l          ( ycor-of turtle b + y )]]
( l& f. l; z1 ^& }6 Lend9 ?& a/ e5 b' {4 H1 p! Q
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-22 09:25 , Processed in 0.023523 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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