设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5965|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。* F' d5 ?$ x/ I! L  D
* w% p. Y& z3 D+ ^5 A2 x2 u
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。* F9 O" t) ]$ _! _
+ B- d# O; y; q  m$ g% L
turtles-own [a b c d k f g h
, U9 Z5 S2 M4 q' q  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
% i* d! Z% _0 s! C- u+ d]
. Q" g/ s* Z1 t  B) n0 X- jto new
' P6 z' q; W6 N+ x5 S  ca
  K5 w6 b8 D5 H9 ~6 U  crt 5 * num_of_building; A, a6 w, m4 a
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]4 c. Y* f# V1 {3 U4 @7 ~4 C
  scatter     ;;keep center-turtle random positions 0 b: q: Q/ L' S6 Q" F) J
  unit_plan   ;;make up the building plan
$ I$ r0 `0 V5 g% y/ ^- Z6 oend  S. _2 Q% x6 x2 E9 f. i' K* r
to scatter- n# }  t, `4 [1 i. b8 m( J! y
ask turtles with [remainder who 5 = 0]
' H7 u4 q- ^; v[
% R( ~5 K9 R; z6 U7 V0 _set xcor xcor - 6 + random-float 15
* @; X. [# |( C% Z( lset ycor ycor - 6 + random-float 15! M0 R5 |2 l# i. x
]
9 s" c3 m$ u$ Z! I1 w# ~) [end7 {+ x& Z) T  e* J
to unit_plan ! q: m$ K' y9 E! T
ask turtles [
# o3 d, k" r/ A  O0 cif (remainder who 5 = 1) [set a who 2 \7 X$ M. T' @' y. V5 }
                          set x ( 0 - Wid / 2 ) 6 d7 c4 \& N5 ^. h9 Q: V
                          set y  Dep / 2 ]( P9 B6 |  D9 ?" |1 v. F
           set b  int (a / 5) * 5
$ [" Y/ B6 o6 G5 a' F. G    setxy ( xcor-of turtle b + x )& C2 Z# i  U- y( [. U2 U$ M
          ( ycor-of turtle b + y )+ V8 i6 _8 Q9 i, r: G% \
if (remainder who 5 = 2) [set c who4 c& j4 F- W9 t: K2 r: F' C4 N
                          set x ( 0 - Wid / 2 )
4 ]3 ^: X, H: d9 b7 V                          set y (0 - Dep / 2 )  ]& o( V9 p8 [6 A; ~( ]$ V& V& C
                          set d int (c / 5) * 5+ c6 r0 _. [* ?8 [
   setxy   ( xcor-of turtle d + x )" z* }, F1 D! K, R8 _' `
           (ycor-of turtle d + y ) - q$ b5 p9 [0 e  i" Z. b
         
/ C* P& b) h9 l3 R: V" o/ O            2 M/ @3 ^+ W* f7 v5 l; {
if (remainder who 5 = 3) [set k who
1 A5 g- L: `5 z, b) W                          set x( Wid / 2)  
$ H- S4 r4 X" K# _9 z: @2 Z! [                          set y (0 - Dep / 2 ) ], ~2 W4 x5 T  \
                          set f int (k / 5) * 5/ G$ ~# I! I9 V) }; Y1 T/ C
  setxy   ( xcor-of turtle f + x )
' _" x  P* h$ z4 \- ~  M% g           (ycor-of turtle f + y ) % R6 ~, v% z9 P$ R. N
           
7 h7 \$ I7 F2 F           
& G9 h  r% `! d( ^( Iif (remainder who 5 = 4) [set g who
; ]- ?$ g, w6 y                          set x Wid / 2
+ c1 i5 T0 `- ~$ x# e                          set y  Dep / 2 ]4 L* w# o6 S* K1 q0 v/ P
                          set h  int (g / 5) * 5( `- H0 u& G8 j- Y/ w) a
  setxy   ( xcor-of turtle h + x )- B4 i7 g9 L% C7 W
           (ycor-of turtle h + y ) / F8 y9 V9 ?/ @5 C5 g
                          
0 ]& j* ^0 j8 k" {                          , P- R  v0 @+ x/ ]2 H
                          ]
' I& r2 u7 }. z/ ~  ?4 o' ~  Yend
4 x/ l% A; a( ?1 F6 o# R
# x2 S2 X0 A! C( `. Q[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,8 P+ U2 o7 R. M; d# S
应该是! w# g0 p0 }( M+ v
ask turtles [) \  ]: B  \3 u6 B: V! K" j9 }9 L3 ~
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) , D2 A& D' v1 E* }8 L+ I6 G7 e, R! r, c
                          set y  Dep / 2 3 M+ y, b; Q& i6 h) @: j
           set b  int (who / 5) * 5
1 L7 K6 n0 L6 I! X( W    setxy ( xcor-of turtle b + x ); k2 Y# r1 e9 P0 z8 C5 \
          ( ycor-of turtle b + y )]]5 K' m7 f4 @: _5 a
end- f' R* w+ F) T6 |* v
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-13 19:33 , Processed in 0.014444 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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