设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7646|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。8 Z! O$ x0 c* F. G" l% |% k. w

# _9 s+ d% N- S6 s/ T8 N6 {但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。0 Q) U( n8 Y* e# m4 e/ y, W

& @; W* s% l1 p& `( Lturtles-own [a b c d k f g h
; W+ p1 r0 h) ?  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
( a) ^5 g1 x  I% J7 n9 v# H]
$ R. A/ ?' y1 oto new
- v5 N( Z2 D0 j5 h5 N  ca
( C. H2 y# v! }; `* }9 S  crt 5 * num_of_building! t0 G$ v$ P7 I) h
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
2 V; B7 E( j) p6 Z0 M& _  scatter     ;;keep center-turtle random positions
1 t* Y: V7 ~) G9 u; u- `0 H  unit_plan   ;;make up the building plan- s9 `) V7 Q, Z1 G. b
end+ L( u5 t2 I5 @
to scatter
; Y# ^% }2 @) j. Iask turtles with [remainder who 5 = 0]0 f, y7 S% D% k
[1 d+ f, ~) k: [& ^
set xcor xcor - 6 + random-float 158 u4 l: l9 X  P% }; H5 l/ W! A0 @
set ycor ycor - 6 + random-float 15
- Q* N" Q; q6 p% i]
3 \1 i3 g: T) Xend
9 M3 @% T- B1 Z$ B. c% g7 Rto unit_plan ( Q3 k* U1 ]. k( D! u
ask turtles [
4 F* l: W" Z; }8 eif (remainder who 5 = 1) [set a who
( p! }5 X8 _  G5 g; Z. C                          set x ( 0 - Wid / 2 ) : D* B" y! g, J  s( V
                          set y  Dep / 2 ]% l4 R8 ^6 U8 ]1 P' T
           set b  int (a / 5) * 5, ?$ I+ l# x$ x. u/ h, N8 a
    setxy ( xcor-of turtle b + x ): H: W5 h$ E5 Z* R
          ( ycor-of turtle b + y )& T( u  u. H% B5 y8 ]( a; u* {/ O& |
if (remainder who 5 = 2) [set c who9 V6 Z4 t8 b( a2 O
                          set x ( 0 - Wid / 2 ) 0 L  u2 W: B1 L3 b& |
                          set y (0 - Dep / 2 )  ]
5 a1 V" ~& n/ U% K0 z" P- p' P                          set d int (c / 5) * 5
# @2 ^# C; o$ B7 w  o8 G   setxy   ( xcor-of turtle d + x )4 @- G3 W' l* p5 J/ A9 c2 h8 J' }
           (ycor-of turtle d + y )
' v- s" g/ G- e" r6 ]% E1 {         
0 T6 Y: {* u/ G" v: j" Z            ! G( @+ O4 b7 E; U
if (remainder who 5 = 3) [set k who/ p; D* `; u- j0 x$ J2 h% ]
                          set x( Wid / 2)  8 a+ w5 i& F. {% |" u* X) S( t
                          set y (0 - Dep / 2 ) ]" R0 Y! S9 [3 Y9 O: {+ ~
                          set f int (k / 5) * 5
5 r) `1 l5 k6 j6 ]& r! t1 ~  setxy   ( xcor-of turtle f + x )# k3 P, F, [5 h; Z+ T
           (ycor-of turtle f + y ) & r) I$ O9 W. }+ v1 ^
           
, \  ?& ~; c' W" F3 ]3 p8 h           
: d" Q1 F+ T8 A; Aif (remainder who 5 = 4) [set g who: e0 b8 o+ D: V. V0 ~! `
                          set x Wid / 2 / n1 q9 h" l' r: t* L4 g
                          set y  Dep / 2 ]
9 o* D4 P% d$ e& _. A                          set h  int (g / 5) * 5
7 F$ j: v; s+ O2 x  setxy   ( xcor-of turtle h + x )
  k5 Y4 V, S0 F% o5 }, r9 D           (ycor-of turtle h + y ) 7 z7 ?% y! ]- L% o' ~0 E
                          
( x  n) n7 @  M, J, ]* Q                          
6 e* l3 z' N7 L% |                          ]9 J" m, \6 F- g1 m* q- [
end
5 U0 G2 T6 x2 ]$ R  v& \; |# q7 G: h
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,! n+ i2 b4 ^! B( j
应该是1 K% Y( X$ G9 n
ask turtles [5 m7 ~/ R( T" G- x6 o
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) ! p, M0 T+ P  ~/ z1 z
                          set y  Dep / 2
# @2 I- ~9 i8 v           set b  int (who / 5) * 5' w! v3 D7 x/ o  `3 d- u2 ?( ^
    setxy ( xcor-of turtle b + x )0 N; s. G6 t% v; X) ^& G# b
          ( ycor-of turtle b + y )]]
* q! k( A$ m5 C* i  |1 \; lend1 \( r2 W1 q7 H
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-10 20:28 , Processed in 0.014951 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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