设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8748|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。$ l  Z4 B, w- r# K6 T" g# i

0 b6 d- T  b3 o2 Z但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。5 G  v) C6 j. O7 B, ^1 a* ~4 P
9 H6 P; U2 b: n# \
turtles-own [a b c d k f g h
2 b  G* ?. @% y. N9 d" }' D& H; y  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
' j- v5 R6 y0 s* Z$ \3 u" M3 X5 T]
' U9 a4 u0 \9 K  y! y& vto new
, w* x( _" `: I  g  ca" s+ [( [* ]% V' Y6 r6 e6 M+ w- K
  crt 5 * num_of_building
. T4 e2 n; K* ]& _8 P2 z  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
, V  b* S8 O  d% M  scatter     ;;keep center-turtle random positions
; I; \, |4 f/ K* `7 }+ a: F5 u  unit_plan   ;;make up the building plan# e$ E/ T- E" Y* Q
end( M7 {( d; ^6 F; \! [- K
to scatter% w7 k4 Y6 J1 {' [5 h0 t- v
ask turtles with [remainder who 5 = 0]
& X; C8 l# L& `' V, O[
4 Y/ a' i/ m" b7 ~/ \9 w2 oset xcor xcor - 6 + random-float 15
/ s  U8 V% q$ N/ O0 i. Oset ycor ycor - 6 + random-float 15
9 [* Q3 A2 u8 f' c% _, A]1 ~6 }3 P/ {3 {$ V
end+ U" B3 r( E7 N5 I& n
to unit_plan
8 F8 Y6 Z+ x  k: L/ ]! Z0 h+ ~7 H$ W- Rask turtles [, X  g" l# u( p2 h# S
if (remainder who 5 = 1) [set a who
3 @5 g# [- g: B5 F7 u; x                          set x ( 0 - Wid / 2 )
* P' Y: ~0 ?1 u; P9 j                          set y  Dep / 2 ]* e. f' J! T/ O, ?8 }( l$ n- P: }
           set b  int (a / 5) * 5* J1 N4 I* L3 M7 R
    setxy ( xcor-of turtle b + x )
- \6 H) U- A5 C. R( W! V          ( ycor-of turtle b + y )
- ]. v5 t2 \3 s# aif (remainder who 5 = 2) [set c who
6 E2 e9 U6 L6 G$ d# W  g: g( F                          set x ( 0 - Wid / 2 ) - d; K) k' R. X* w
                          set y (0 - Dep / 2 )  ]
" R! I8 v& G( E; ~                          set d int (c / 5) * 5) Z! u; y& R: t
   setxy   ( xcor-of turtle d + x )2 N  t! G! \- z1 d" C
           (ycor-of turtle d + y )
& }$ {! }; S7 T8 {          ' n8 P- o* g% ?6 C! B0 _$ S
            / M2 R8 ?9 J/ M% }
if (remainder who 5 = 3) [set k who
4 V4 i7 o/ E+ ~& B  v: n$ x0 l+ G, u                          set x( Wid / 2)  " J/ H& w3 C2 M3 N+ H  l5 o
                          set y (0 - Dep / 2 ) ]
8 A0 \( _" H4 ^# ]+ s4 S# G& r. z                          set f int (k / 5) * 5* i0 s( U* q- t2 j! N- h2 }
  setxy   ( xcor-of turtle f + x )
0 b* [/ B. x1 T+ ]& d/ S. ?5 p. j           (ycor-of turtle f + y )
" w( R/ |0 Y8 F  w/ q           , k) O& }! ?1 Z! s* W) k# T$ k0 H
           
4 Y& Y7 [! ?, O# R% \; W3 Hif (remainder who 5 = 4) [set g who( t* L; M( r9 ?% c# {3 z  a
                          set x Wid / 2
+ u. P  K; F- D2 M+ L3 t                          set y  Dep / 2 ]% n0 A& b: a  s& z
                          set h  int (g / 5) * 5
- \6 h7 k3 n) Z/ d: Q  Z  setxy   ( xcor-of turtle h + x )6 [8 [0 T; s. ?  r/ z
           (ycor-of turtle h + y ) . L' Q$ J9 R6 a" U" G3 Y) i# k! d
                          " t$ @9 ?" E+ E/ b
                          
7 Y2 A8 P5 A" ~                          ]
1 R5 O" V, |6 e- z# Eend$ V# [. y3 O" G, b# A) x. Q

/ a2 H6 X2 l  m[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,2 \9 s8 e) W( m- f; l
应该是
& o  U1 t6 O& U# x7 e& task turtles [7 B% D" T5 l9 L7 P
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
) ~! x; z7 L3 r9 @; r0 |, B1 P                          set y  Dep / 2 0 D7 w: ^( s, F; E: T" I
           set b  int (who / 5) * 5
8 d* E; e8 o8 b    setxy ( xcor-of turtle b + x )
1 j; P7 ~1 k; F8 |( y( f% P# ^  R' |          ( ycor-of turtle b + y )]]
1 h% u  l& L1 N% k6 S3 ]7 l: l- Tend
' \3 a) z" ^4 f, H5 _  a; q( \8 N之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-31 23:59 , Processed in 0.014531 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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