设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7943|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
1 H  _, a# N# D% M. q6 g- O3 ^$ m5 N
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。- h. Q0 n/ d3 O( v/ p9 ?! Y7 w
9 f6 [0 T$ m1 n) a- \4 y
turtles-own [a b c d k f g h
( i" M9 m( u, q& N; v' M7 s7 H/ l  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
/ B* F5 c9 u6 ]1 Y8 H/ `], N6 Z' ]: J4 E; F8 ~
to new
2 ?! A0 C* h2 a4 X9 N  ca
- O" |3 D- ?1 }! T/ K1 ~; s. v  crt 5 * num_of_building' v. _0 H, x* `& r1 \
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]3 n  z! F3 p: Q! I8 p4 Y
  scatter     ;;keep center-turtle random positions
: Q8 C$ U% X* I6 r4 a! C6 M* m  unit_plan   ;;make up the building plan
9 s0 J2 e$ f$ vend
6 q! p* e8 n* T. ]. y# vto scatter9 v2 C& p# u' r% e. x' a8 n+ L
ask turtles with [remainder who 5 = 0]1 l) d4 U' X$ Y% [' f3 o  }
[  j2 f3 i5 ~. G- n9 L
set xcor xcor - 6 + random-float 15
! Y* ~) W. ^% b1 t0 l- Qset ycor ycor - 6 + random-float 15
5 l% e3 J- P* L" [# S) F, w]
4 j" A3 ?# o0 X6 w8 u& U' vend
' ~' U% S) @2 B3 a9 sto unit_plan 6 S% ]( {+ J9 k4 C; w; P) B, q
ask turtles [
# M# P  F6 U3 Q6 h  O- |if (remainder who 5 = 1) [set a who
2 b* A& H; u6 i* S1 ^                          set x ( 0 - Wid / 2 ) * I! N! q9 U8 B2 |
                          set y  Dep / 2 ]
- J0 K) ^& n1 g* A           set b  int (a / 5) * 5
$ Z$ t; F; I; L) L    setxy ( xcor-of turtle b + x )7 Q) Q0 t5 B) D+ f3 ?
          ( ycor-of turtle b + y )8 N1 J1 M5 d' {" Y) o7 Y
if (remainder who 5 = 2) [set c who
0 ?( y4 r* `. a1 s8 i  r7 o; E                          set x ( 0 - Wid / 2 )
% f) |1 D( |+ Q7 L. B7 N- A                          set y (0 - Dep / 2 )  ]
: t6 Z' p+ y+ a/ V                          set d int (c / 5) * 5
; m6 F' h/ s# u8 g1 J( k   setxy   ( xcor-of turtle d + x )
- X+ c9 S  o( P. ?$ D           (ycor-of turtle d + y ) ! u5 c' M2 A2 ]% X5 F) A
          9 B; G% H% i! b9 V- v& Y
            2 Z, t' }0 y6 z
if (remainder who 5 = 3) [set k who5 i! t5 U: F) W0 u1 }& I4 l) B. b/ Z
                          set x( Wid / 2)  5 |! h1 v5 u( S( L$ F* S
                          set y (0 - Dep / 2 ) ]
; ^8 {0 @) \4 ^5 L, C& ?9 \                          set f int (k / 5) * 50 h! C4 I; q/ I  N
  setxy   ( xcor-of turtle f + x )
+ n$ k- L3 q2 s           (ycor-of turtle f + y )
' F4 x* c" M3 r8 l9 I0 z           
0 E3 @9 t& m4 n1 _; W" L7 p3 v           
& C# Z9 L! C4 [0 Y# d3 D9 Rif (remainder who 5 = 4) [set g who! U8 W; Z$ c9 J+ }1 p9 }( l; y$ C/ y
                          set x Wid / 2
! X4 ]1 Z4 d) o; C                          set y  Dep / 2 ]
0 t8 P' H  V7 ~, D; g* [                          set h  int (g / 5) * 5
4 m; M& U3 `& |  setxy   ( xcor-of turtle h + x )
) q9 j. g# n4 ]* @           (ycor-of turtle h + y ) 9 x1 @2 ^2 r% u5 B
                          
! w; S+ c: j+ v) V' r$ x" F3 {, P                          
" p% L, _( @$ b4 G9 T                          ]
9 ~0 ?# @% _; m8 U9 g3 M3 q  S3 Qend7 [8 s3 [0 l  Y$ G; Q

9 T$ X4 n7 D* U8 d- l; l[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
% X- E7 K+ d, @! H应该是$ S% B: i) j7 O; ]& M
ask turtles [, A- b8 S4 x1 z) T2 N! c1 V& |
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) * s) [/ T' H, h: [5 d6 R
                          set y  Dep / 2 : k4 ?8 P1 \$ a5 b- J% P
           set b  int (who / 5) * 5
- H4 B5 ~% V$ u* o2 G  j# u7 v    setxy ( xcor-of turtle b + x )
! p( Z8 R4 V/ C! T# R/ O$ P- h          ( ycor-of turtle b + y )]]
7 m7 a- a6 J/ @0 F* k& Q7 lend: k- q9 o' ]7 ?  G! q& t- x, R
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-20 15:38 , Processed in 0.015902 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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