设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8185|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
5 E, ]7 D% F7 T6 K9 d2 a2 @6 ?
$ B0 e7 x' Z. e但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
( L) w: S& x2 B) O
* ]: P5 o. B+ B& z! T/ Pturtles-own [a b c d k f g h
: N/ o) r$ P$ ?+ C9 Z  C2 r! u  x y     ;; these are the leaf-turtle's offsets relative to center-turtle 1 u: e; P2 S; N9 A: g
]
7 J: |; Q, M. z) kto new
3 @$ U2 K0 ]2 i* m  ca
- S" X( _# x( w, @# T  crt 5 * num_of_building$ Z# R  p2 }) {$ p& H
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]0 X$ G( K4 f+ Y! y# j2 S& s
  scatter     ;;keep center-turtle random positions , S9 y* @6 g9 S5 b3 W: t
  unit_plan   ;;make up the building plan
# S2 K9 f5 F/ u# q0 U7 B& aend6 h9 F9 W; j5 b
to scatter/ R* u8 v, [! Y" H
ask turtles with [remainder who 5 = 0]+ e( ~2 a; s  p' S+ ^" l
[
+ @. q1 c5 u, `7 Rset xcor xcor - 6 + random-float 15) r3 Y) q( L3 K5 A
set ycor ycor - 6 + random-float 15# i( |  q* [5 ]& j! r
]
0 n  @' ~/ y8 r0 [3 F! xend6 ^1 d% [% B' K2 ]4 I: p2 Y9 V' J7 g
to unit_plan
7 {% t6 W6 J# V5 h$ dask turtles [8 o% n( }7 d0 X) O  Y+ T
if (remainder who 5 = 1) [set a who
& |' k2 V9 B$ v/ s7 T7 O; P                          set x ( 0 - Wid / 2 )
( C, U9 X3 }( a                          set y  Dep / 2 ]
- G0 Q1 y6 R  K6 T0 K! x           set b  int (a / 5) * 53 r- V& u' e5 K: X
    setxy ( xcor-of turtle b + x )% w5 q9 u' I# ^, D5 u* n
          ( ycor-of turtle b + y )
/ R# x! {+ ~1 `, Lif (remainder who 5 = 2) [set c who
$ ~% ~) \$ w5 Z: K+ F4 K7 p                          set x ( 0 - Wid / 2 ) 1 v% g* ^+ ~" Q6 ?! j
                          set y (0 - Dep / 2 )  ]6 ]' f6 u3 X: I  A- z
                          set d int (c / 5) * 5
0 X- E: y$ y# Z% ]) A3 g   setxy   ( xcor-of turtle d + x )
& }8 A( F/ G+ V  i0 t           (ycor-of turtle d + y )
2 @' y* F" {: {) t3 D2 o9 v            R6 `+ S4 c- X  m8 L; z. A" W
            6 A7 c1 O# U1 Z
if (remainder who 5 = 3) [set k who
1 k4 [3 B3 [( w& y4 T2 `0 r                          set x( Wid / 2)  
; a5 L8 x. X( K; q: R5 o                          set y (0 - Dep / 2 ) ]
' ^) o  H: L8 \5 d1 |                          set f int (k / 5) * 5- c3 Q. V" C9 L) o; G+ K: ?1 u1 h
  setxy   ( xcor-of turtle f + x ): ]3 [! R' G0 f" R- A9 i7 L
           (ycor-of turtle f + y ) - O  ~/ p8 ^: b% R
           
% H7 b, r! G4 c& v) Y, m           % v+ x6 M$ y; D8 F% v
if (remainder who 5 = 4) [set g who: O* |6 P, p0 d
                          set x Wid / 2 # E- n! C; F. v6 k( b
                          set y  Dep / 2 ]! V) e; I9 V8 Q
                          set h  int (g / 5) * 5" w& m* ^( T0 h# B
  setxy   ( xcor-of turtle h + x )
  I+ ?; V! S& X9 @           (ycor-of turtle h + y ) 1 M. L; L! k7 `) D) F# C
                          
% i, ~4 m9 e$ f5 x, X& t3 M- s                          
, s( o9 u4 `  _+ N                          ]
/ P5 O3 Q0 H2 u: u% e$ Z% zend
" C3 {' u4 V: c$ ?6 J0 j* P9 ]# k
' L+ m* Y! \6 w( C[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,) ~2 t. }: {; Q  ~! R
应该是' o. e" `$ O6 ?' L% d( Z% ?
ask turtles [
) l* r7 h4 @# P/ j3 S( wif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
: Z9 Q/ o! R! N" [4 i) k                          set y  Dep / 2
. A3 _5 l+ d; c8 q, N8 g: g# K           set b  int (who / 5) * 5
2 R6 e& O% @/ L9 ?2 f! J    setxy ( xcor-of turtle b + x )
, [$ T4 T- I# F2 Q; t2 z          ( ycor-of turtle b + y )]]
* C* M8 k# X9 f9 T+ ^end
  {2 s5 T! K! x2 V# c之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-15 19:27 , Processed in 0.014812 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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