设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8574|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。% r/ O) b& n* z2 L' k% f- o' P, k
7 n; ?8 a5 D. n% k7 j' V
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。9 z' b6 d! }/ m
1 P5 j) D8 w' t
turtles-own [a b c d k f g h6 J5 U- @  E, d% |* X( h5 N( `
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle & R, }% J9 X8 ^
]. Z' L/ i, k+ s7 J$ `0 t
to new
! z! r1 r7 N, Y, d- P& U* d  ca
+ ^. ^  Z$ ~& l; H- L5 F+ e  crt 5 * num_of_building
: ^9 z9 |+ {+ |+ Z, E* @  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
6 d  _5 r9 l4 \) {- r  scatter     ;;keep center-turtle random positions 1 M. `& H% s) p# R
  unit_plan   ;;make up the building plan) W7 U- y- Y* r  y+ k9 T
end6 `& l) L. O0 U) G$ V
to scatter
# M  Q9 c; X; J0 A+ ~% t: A3 |ask turtles with [remainder who 5 = 0]
" {) s. d8 @+ @2 V7 i[3 _# `, P7 y, C  Y/ Z
set xcor xcor - 6 + random-float 15
7 T7 r1 }0 Q& S( W$ Q1 i( U2 aset ycor ycor - 6 + random-float 15
1 G! o" Z( N% ?& c]
, a7 }$ r( t2 Zend
. m& E$ e; i# tto unit_plan : `1 d/ x) D6 \: b: H/ h
ask turtles [
; C( A: P# e: a, ~4 `if (remainder who 5 = 1) [set a who
3 J3 ]1 M8 L# b                          set x ( 0 - Wid / 2 ) + O0 U3 n$ s3 g) ?) K
                          set y  Dep / 2 ]; S7 G1 y8 S( A
           set b  int (a / 5) * 5
9 f: J! z/ i. T    setxy ( xcor-of turtle b + x )- i6 v* M6 ~9 @2 H9 X
          ( ycor-of turtle b + y )
2 j3 i) T; U1 [if (remainder who 5 = 2) [set c who, p# V% K4 W$ R+ T4 X0 J& J
                          set x ( 0 - Wid / 2 ) 7 |, Y, b* m! k1 Z0 f1 G
                          set y (0 - Dep / 2 )  ]/ U( h) x: j" G+ ?7 \9 N' t; |* v- _
                          set d int (c / 5) * 5
. Q! g7 {& {" _% n# I& ^) d, d   setxy   ( xcor-of turtle d + x )
* i  J3 y- A! n4 b1 j$ U, f6 Y: C           (ycor-of turtle d + y ) ! {7 R$ }+ k& ~- F: a
         
4 D& n/ e  K0 \9 L* }" A; j9 m( x* |            
$ y9 I+ s2 E+ v* i' aif (remainder who 5 = 3) [set k who, l% q6 U3 e( E  ]5 w5 E6 q
                          set x( Wid / 2)  
- B9 T+ Z$ y: W. P) N/ i8 w                          set y (0 - Dep / 2 ) ]* X) L9 g% V! E; Z
                          set f int (k / 5) * 5
+ w' o4 Z) I* |9 ]3 a9 i. K  setxy   ( xcor-of turtle f + x )
+ L: L: N/ t& m6 B  b/ K           (ycor-of turtle f + y ) $ \6 b; |3 r1 v. q+ D; N9 p" f4 N
           ! v" c9 m: p7 R$ h0 o- l6 E6 Z5 v( Q
           4 ]* f, q6 d7 g. `
if (remainder who 5 = 4) [set g who
% z9 f, W7 u6 {. E( F# {( b                          set x Wid / 2
* t( S6 K: @/ v                          set y  Dep / 2 ]
3 l; l" R$ X9 E0 V/ f) v                          set h  int (g / 5) * 5
/ f# P7 J; z2 y$ n% F2 N  setxy   ( xcor-of turtle h + x )
9 `* l* P# n# T9 ?# V$ ]+ D, B           (ycor-of turtle h + y ) 3 n) X+ F/ U8 d, X% D! g+ m# f
                          
) D# Q8 a3 ?2 Q+ x: O# v                          4 W2 h" q8 M; y& c3 h
                          ]
% b. J+ Z' y- R) p' `, kend
& ~* `0 ^6 p% g/ r* g
9 M- S9 g5 P2 X  H9 R; w[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,( Z0 L5 D% \. c) s( B* V( o
应该是
5 f9 X% Z2 _* y% S% Q9 k4 \5 ^9 L& cask turtles [
0 G( {3 f6 S, uif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
  b# r" P+ O/ C5 u8 M/ }3 U% n                          set y  Dep / 2
5 ^% `* x3 f, f7 K0 J, }, O' a% ]           set b  int (who / 5) * 5
9 y1 `9 k7 k; X  z0 T  m    setxy ( xcor-of turtle b + x )6 ~& r: y; E3 B4 K4 o# B, i
          ( ycor-of turtle b + y )]]
) I7 _" i- {% i2 zend! X; Z7 q1 ~. ?) n7 ^
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-12 20:20 , Processed in 0.019203 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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