设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6889|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。; Q4 h# j. X) n$ d- _3 J' s2 l
$ x9 Y$ m" ]2 V$ a* U
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。1 i7 E0 @- J( ^9 h% X- T6 R% x) c, g% C
# e) q& B; X) D# y9 @$ f7 @0 ^
turtles-own [a b c d k f g h
/ P7 ~! n9 K- k  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 2 s. @- q* G/ C
]7 F* I  P8 _& ~9 l: I. k
to new
7 `4 H- c5 E4 W# e% C4 B6 {6 ^  ca
! L, U% D6 F# W! D  crt 5 * num_of_building
: u5 ~& v) i* m  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
8 ^; x/ L+ C" p  scatter     ;;keep center-turtle random positions
& S/ h# S4 X# i/ G& O3 P4 J/ H! _  unit_plan   ;;make up the building plan# v! G2 R- Z) w8 v
end5 C1 M, [. r  V6 [
to scatter
/ j4 }5 P5 H* D; x$ R; [, Hask turtles with [remainder who 5 = 0]
( S* G6 t6 j8 g0 `[
, V" f5 r) Z$ c& ]! N7 G8 Qset xcor xcor - 6 + random-float 155 u( C! [* k7 Q, q' S7 Q
set ycor ycor - 6 + random-float 151 Q  \! B' r1 r5 T
]2 E: L* M$ N8 W$ s
end
$ X" p  d) r: Nto unit_plan 8 g, V3 T, @2 B9 D
ask turtles [
  y# b/ `& n2 n6 Tif (remainder who 5 = 1) [set a who 9 h, B$ W4 p( I. t  I+ g
                          set x ( 0 - Wid / 2 ) ( L) G/ n1 X1 a$ ?' n( Y1 [1 `' o
                          set y  Dep / 2 ]
( z, H/ I3 i. h7 \% _; s           set b  int (a / 5) * 5
& u  V2 A/ g" @4 U/ x    setxy ( xcor-of turtle b + x )
$ T/ y. [* z0 j" I# E          ( ycor-of turtle b + y )$ M/ R& s" v5 ~) K
if (remainder who 5 = 2) [set c who+ D( h/ f; V7 N
                          set x ( 0 - Wid / 2 ) ; H! _. S% o0 U% g- N6 j/ D
                          set y (0 - Dep / 2 )  ]
# P- a4 F/ w: c& Z- g                          set d int (c / 5) * 5
8 ]* g$ o) F  L/ E! r   setxy   ( xcor-of turtle d + x )0 U8 ^" N1 [* i! e
           (ycor-of turtle d + y ) + j; h: A5 |' G1 A5 `' y! O4 b
          : p. V& H4 }) ~' @3 H/ v
            
) v4 f- j% J7 x' }if (remainder who 5 = 3) [set k who7 l' ~" ^, H( Z+ i
                          set x( Wid / 2)  0 `4 u6 V. J0 V2 [
                          set y (0 - Dep / 2 ) ]
1 F* A2 T& b- j$ e  O1 _3 D$ }                          set f int (k / 5) * 5# h8 x- ]. W4 m& x6 E8 d2 [
  setxy   ( xcor-of turtle f + x )# V2 @8 o* g8 ?- u: F7 o0 j6 `% V
           (ycor-of turtle f + y )
( J! Q) d) x3 s7 y           # j# }% U  Z  H, ~' C
           ; V5 W7 w" U" C$ Y4 Q% c. _
if (remainder who 5 = 4) [set g who$ N+ I9 Y2 r8 C
                          set x Wid / 2
0 h% n8 e: w' y1 @                          set y  Dep / 2 ]' }* [; V4 b' s5 P% e6 Z
                          set h  int (g / 5) * 5) c' |! [# @6 }0 E
  setxy   ( xcor-of turtle h + x )4 P' \) G/ z3 F1 Z
           (ycor-of turtle h + y ) % o5 v! o: \1 r" m% k
                            \  h/ f, i, y- l7 S$ e) @
                          2 |5 a# J9 K! i. m# D) W& E* |: ]# h
                          ]
: u1 F4 z6 R! B# m1 Send% [8 t; P" Y" s  r1 \
( `/ D2 k, |# q5 r; Z; h* z
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
5 d2 z3 N0 G( T! o# h% F应该是
. f3 M2 \4 E- a; k: fask turtles [) M% G1 F8 `- m+ W) N
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
% U8 A# o, \1 P  e  ^                          set y  Dep / 2 9 e5 h) `+ J  Z8 S; ~
           set b  int (who / 5) * 5
6 w) u- m% r. B$ u/ k    setxy ( xcor-of turtle b + x )
7 U' z7 I# N# H5 S" g+ s4 e& Y          ( ycor-of turtle b + y )]]
: b/ S0 M* p: E5 P  C" R! nend: R5 y' n+ S% V: h5 O6 \
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-6 06:00 , Processed in 0.020358 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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