设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8057|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。+ T& n$ s+ s* t1 r4 I6 p4 @

' K" L" [$ N. R4 w* c但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。4 V" |0 q, C$ A9 i! @

6 B4 P) D$ X/ Y- ~3 z4 _turtles-own [a b c d k f g h
1 q; @( F! x; R7 F2 i& w  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ( C9 h! l3 ]5 f; g
]8 F4 m9 ^, n( F' N
to new
$ P/ D  m* x/ _& m5 U$ k/ ^  ca. C8 j* b! J  G: I" Z
  crt 5 * num_of_building9 ^- l' L  j" \+ W7 W+ J! h+ z$ b
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]. n( G8 n5 w! b# G0 V; T# y
  scatter     ;;keep center-turtle random positions
5 w. [  |6 Z" T" a: R/ J6 s  unit_plan   ;;make up the building plan0 e- W% b2 c) V0 }6 Z
end
' G) z% x& N; {0 D$ _) uto scatter
( {8 A5 G  R* W0 c1 R3 {ask turtles with [remainder who 5 = 0]
5 _) W# D; r7 W# _2 `[5 o) |1 A  A& S9 J
set xcor xcor - 6 + random-float 15. c6 w  f, \" [, s
set ycor ycor - 6 + random-float 15  H* r9 @0 p8 c  \
]# p! a" s8 t- Q0 @! k/ n! s
end: Y# V; Q( `6 q. @
to unit_plan
& L& |& Q( Y2 Z2 L) {7 V0 b( @ask turtles [
% {% [7 E6 o4 G% w" dif (remainder who 5 = 1) [set a who
( c$ J+ C3 u$ i, y9 Z$ N6 v  Y; Q                          set x ( 0 - Wid / 2 )
4 z& @7 ~6 _4 v1 K                          set y  Dep / 2 ]4 [* D* G1 @$ E7 D
           set b  int (a / 5) * 5
) X. s( S, b- g& Q    setxy ( xcor-of turtle b + x )
* e5 s, Z* x! K- m2 g! ~          ( ycor-of turtle b + y )
8 S0 T3 E; \( \4 K8 h1 Mif (remainder who 5 = 2) [set c who
4 `0 ^. `3 }3 s' d: z/ M0 u! U' W" d% ^) O                          set x ( 0 - Wid / 2 ) 1 B  U) S% s+ Y$ O
                          set y (0 - Dep / 2 )  ]5 d, _2 ~# ~. b$ [
                          set d int (c / 5) * 5. C1 J8 c+ ~0 A6 {% S
   setxy   ( xcor-of turtle d + x )& }3 B1 Z! D$ c, a
           (ycor-of turtle d + y )
4 o. i! N7 R& [, [         
9 k* v. m- [$ r' C            ' _2 V& M* V! F4 X! L) i+ r
if (remainder who 5 = 3) [set k who
3 c) u% p( I7 b                          set x( Wid / 2)  & S* G( H! I& ^  t1 p$ Y$ ^
                          set y (0 - Dep / 2 ) ]
+ ?& Y* o! ~; F, k# C6 e; w5 k                          set f int (k / 5) * 5
( a0 I% R* E$ o8 q! x9 d  setxy   ( xcor-of turtle f + x ): L& N3 l0 Z: E% F+ x
           (ycor-of turtle f + y )
6 r; G7 P" a9 v! D           
2 @% n2 l* q* A" x) y           ' {/ J9 x" l  J
if (remainder who 5 = 4) [set g who
. C0 @# _1 S; S, g& j# U                          set x Wid / 2
  t7 r( v( l1 E" k* w" V                          set y  Dep / 2 ]
& y) ]  Q8 K; @: x% k                          set h  int (g / 5) * 5
- {* F2 W8 }& k2 N# n- G: Q  setxy   ( xcor-of turtle h + x )! h0 s, ]" `6 s2 x2 r5 c, d! V
           (ycor-of turtle h + y )
1 I" B8 P0 m' @! z: `0 H                          6 E' d4 n$ _8 J4 r
                          
& a$ ^: w9 S4 ?1 o, _$ O$ V                          ]1 e5 C) F; U$ v. ]& A7 V1 U
end* R0 w, ?4 Y# g2 m
0 Y  `, b( @. X, \  a" b, L
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
/ J" p: L2 C0 B; Q应该是
; [% A# g% z2 O  f4 l0 w. Sask turtles [' {6 s4 Q5 u3 f  Z
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
7 C4 I' i2 L8 Y& D, V7 T$ D8 i5 }                          set y  Dep / 2 1 g3 ?& L& x1 M8 e
           set b  int (who / 5) * 52 C/ {- k3 Y% j; J8 z
    setxy ( xcor-of turtle b + x )
( M% ^+ `# \  u          ( ycor-of turtle b + y )]]3 b2 p8 Y6 }; ~2 i' u
end
& d4 N' @/ |. i* K5 @! ?之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 09:35 , Processed in 0.020550 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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