设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7352|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。* E# u: M/ F8 q

4 G7 h+ {4 r: O* x但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。4 Q* D& t0 p' A" S
7 @2 Y& \" l& Y9 f9 {: ~
turtles-own [a b c d k f g h
& w$ T1 I0 ~' H3 p& B1 a4 r: {  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ! B7 m4 F% h- P6 v
]1 e. a$ c- b8 T, H3 l
to new$ B6 e1 i& P) q  z9 V
  ca& ~8 ?* u$ @! R2 {; t
  crt 5 * num_of_building
$ w) |% r% O) h( _+ x8 u* w1 o+ n  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]2 Z0 M9 c; ^) Y1 b
  scatter     ;;keep center-turtle random positions + i- e! G6 g2 D) x  \* ]
  unit_plan   ;;make up the building plan1 a& {3 K- A% k1 @6 o4 \
end
# A; q" L: {( f* v$ E* T4 bto scatter
# V* Y) `; N* hask turtles with [remainder who 5 = 0]
" ~! a! y1 L2 x[
- J' [$ M, k) x) B9 |- z* f: cset xcor xcor - 6 + random-float 15
, _& m# l; A; ^$ c/ m% [" yset ycor ycor - 6 + random-float 15) S! S6 \+ H7 B# Y6 m) }. X  J# Y
]- d- \% G- v4 E% F
end4 m5 f- H- T8 [; Q" y
to unit_plan
6 C+ ~4 i, q4 fask turtles [. c- I* t0 R* J2 X
if (remainder who 5 = 1) [set a who ! F" \4 f6 T4 C  ^
                          set x ( 0 - Wid / 2 )
$ p, H0 `8 p: x; Q6 z                          set y  Dep / 2 ]
" Q% I+ Y, h% v7 U           set b  int (a / 5) * 5
& w3 i: v: V" B( }7 z4 ]    setxy ( xcor-of turtle b + x )
7 v% G9 W3 Y- d9 T          ( ycor-of turtle b + y )
  U- x( T. x& m  kif (remainder who 5 = 2) [set c who; W  A# G# O4 E" y9 j" l
                          set x ( 0 - Wid / 2 ) ( S# n% }+ t6 U9 W1 h2 z" G
                          set y (0 - Dep / 2 )  ]
: a( s" T+ n- Z                          set d int (c / 5) * 5
  w4 a8 x! _7 G0 B$ e! f   setxy   ( xcor-of turtle d + x ). E% U( J% [6 j  M$ a, C9 g, ~
           (ycor-of turtle d + y )
" q9 g  X, i1 \  t& W, w& I  P            X. S1 Z% I5 F' f4 p5 z
            
7 N8 t) O2 X# J1 y- ~( Dif (remainder who 5 = 3) [set k who8 Y8 j; b6 x, z. v
                          set x( Wid / 2)  
$ S) O% W* W! k1 V                          set y (0 - Dep / 2 ) ]: x9 `* t) V' A, A* u5 W
                          set f int (k / 5) * 54 O& ^) w. O8 z" o" f" q/ n! L* }8 D
  setxy   ( xcor-of turtle f + x )- u; h% c/ J$ M  w
           (ycor-of turtle f + y )
" P+ d; X5 z( M           
: I  T( N. `. u' I8 R" x$ `; I6 N           - A) B7 Z, I- f" d# D3 T7 S* _
if (remainder who 5 = 4) [set g who9 m% @. h2 U5 }- A5 ^
                          set x Wid / 2 * W+ B1 N  D- K5 D4 p+ e3 X; T
                          set y  Dep / 2 ]# u) g; s) l% b2 d
                          set h  int (g / 5) * 56 a, d9 P6 H; o( ~- X$ l
  setxy   ( xcor-of turtle h + x )
, B( _8 I/ Q6 C1 U" o" _% N           (ycor-of turtle h + y )
* T, n7 b4 F. C8 U) r  ^" R                            {7 N# T2 K6 b; t) j
                          
' k/ D. c* E! E# ~" d, }                          ]3 g) v6 X+ A* E* X) y3 P
end5 s% U& Y" v) q6 H! i+ K4 y% Z
. M8 U. ]3 I( t
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
- b/ c/ X; T' j5 s3 h应该是' ?5 j4 Y% |; {* J
ask turtles [
' J4 p( }, f- N# [if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 9 Z( o& _1 Z) J* o' _- ]3 {1 f% ?6 D
                          set y  Dep / 2
. q, c1 n* i; L) Z9 S           set b  int (who / 5) * 5
- D. m: l; b0 o' U$ U    setxy ( xcor-of turtle b + x )
3 E) L$ i& `) o. }          ( ycor-of turtle b + y )]]
% J! {4 Z# I  ~% ^end
& T* [6 a# R! D+ u( f$ v之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-1 12:53 , Processed in 0.015062 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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