设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6795|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
& Y4 j( Z, ]& Z" m& ^& l2 f7 e
/ o& [1 k0 _# n/ `但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
+ C& m+ J- ?9 W1 Q9 ^. v; s$ H, K% j5 {0 ?; f
turtles-own [a b c d k f g h
9 G6 y9 D# I7 \  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
6 y9 N5 a4 w) `  u+ L6 R]4 I+ g* W( L2 {3 l- d3 T( ?# p
to new
1 K0 T+ i8 W1 R9 R5 |  ca
5 ^- v" ^6 q, y. j7 u  s( Y  crt 5 * num_of_building
7 G; f  \' z& ?  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
: v4 S$ o, _4 M  scatter     ;;keep center-turtle random positions ; h, e+ H7 J4 d8 }
  unit_plan   ;;make up the building plan; E) n+ S5 t1 K, F  W) ~
end( f) @8 V, {5 L. B: K) Y( ?
to scatter
- b5 t/ R7 f6 Z' R: Task turtles with [remainder who 5 = 0]" ]6 y& U1 @& w% B+ Q
[( y2 k* r7 M9 r" s5 H3 ?
set xcor xcor - 6 + random-float 15+ x+ S. X" k! h6 {( u6 D$ p
set ycor ycor - 6 + random-float 15' @/ j5 ~) S: n$ g, O$ T  S$ y
]
1 \8 X% j7 E8 Zend% n+ u8 }: Y0 C0 k
to unit_plan 6 j( f7 p% B4 w3 d3 D
ask turtles [
/ n. f  |) g! G4 N) oif (remainder who 5 = 1) [set a who
6 E/ p, A+ G" r2 V0 Z+ W/ F$ [                          set x ( 0 - Wid / 2 )
2 m; d; L# i. R/ N- v: ?! P                          set y  Dep / 2 ]
: _" v$ [3 J+ `0 [' m5 w           set b  int (a / 5) * 5
* I( k4 Y' `9 l) g4 M1 `( J1 o# {    setxy ( xcor-of turtle b + x )
8 F" P6 g" P( f3 f; L          ( ycor-of turtle b + y )/ d3 Q! A$ y) _4 D# T
if (remainder who 5 = 2) [set c who; T2 `* j; b% s, v& I3 C* d
                          set x ( 0 - Wid / 2 )
( l8 r+ }4 \. `* O1 X                          set y (0 - Dep / 2 )  ]& w0 t5 _7 o6 s; b& }1 C! q
                          set d int (c / 5) * 5
6 Q8 ?  Q4 j. s9 p8 ^   setxy   ( xcor-of turtle d + x )+ u$ c( n5 X# D( J* b
           (ycor-of turtle d + y )
" \9 U% H. M& j1 c9 c         
: h3 R# Z( `- B1 J/ P( [+ L' G/ i            
% u/ E: E  @7 M2 T% B, Iif (remainder who 5 = 3) [set k who
9 e. k# O! T/ @/ q1 V/ H3 [1 s                          set x( Wid / 2)  $ m" k5 @; T% ~4 @6 o
                          set y (0 - Dep / 2 ) ]
7 }9 l% h  ^% Q) j8 j                          set f int (k / 5) * 5
' R; s- ~- ~2 b4 `  setxy   ( xcor-of turtle f + x )
# M8 y6 I# |4 c; ^9 R           (ycor-of turtle f + y ) 6 E2 T4 S' J- J
           * _# L+ H3 S  f. _3 \, F3 ^: n
           
" c, F1 E! Q6 nif (remainder who 5 = 4) [set g who
1 f- D6 u1 u9 l8 d( B                          set x Wid / 2 2 j; Q8 ~% i0 M$ O4 B, \/ u  y
                          set y  Dep / 2 ]
, z, k, n  V: y8 v3 t5 |                          set h  int (g / 5) * 5# R; Z% e( @' w+ s/ d# D
  setxy   ( xcor-of turtle h + x )
$ \/ J2 R% d" }# u9 Q! [. }           (ycor-of turtle h + y ) 6 M6 E: s- Q. I/ N# X9 E1 E4 O
                          2 y2 V) w! f5 i% b/ a" x1 q
                          
" p  [; w! |" `% H                          ]( ]5 g9 T$ x2 f6 j) ~
end  g0 k/ G  {6 ?6 H5 w4 F8 Z6 E

1 j1 o9 y* J/ i: L[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
/ x& p' R" K% L4 Z应该是
" N- ?3 n. A- D6 H+ ^' u& Kask turtles [
5 V. R/ G, x9 C* n. ?7 F; Qif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 6 u) D7 T+ }' S: j, m8 l. x  ~
                          set y  Dep / 2 + M* e1 {& L# ]: v* P, c
           set b  int (who / 5) * 5' _; y6 n- _% U5 ^" ^! d, A
    setxy ( xcor-of turtle b + x )8 f, h8 `/ q. N$ ~9 G
          ( ycor-of turtle b + y )]]+ \* L9 m% v' m% v' P1 f9 `9 G
end4 n) c% l) u1 [  _2 r6 _
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-24 03:48 , Processed in 0.017258 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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