设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8378|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
- t9 \3 A+ f; B& g# {
1 C4 b+ Q8 o8 ^9 u& h) |1 e, m$ F. W但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。+ B4 T( w) h& D7 C8 @" d) v
5 D1 P9 j2 v9 ]5 _8 A0 N
turtles-own [a b c d k f g h7 i, Z, m. V6 Q9 ]8 A7 k  F
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle ) d- w+ I+ X* Y1 a" ^' K( a
]/ W' \: J$ J# X( W, i( v# M
to new
+ c2 ]! B3 y; A  ca4 I9 H9 t- S4 h
  crt 5 * num_of_building
! ]/ O2 D( k) v: m* ]  s  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]" _0 [* d% i- @" e1 O2 ]! r
  scatter     ;;keep center-turtle random positions
& e- e' [2 w) u" ^1 q0 ]# L  unit_plan   ;;make up the building plan
: e# X+ R0 E0 S+ Q2 G) Iend" G' R% ~# r- t/ G; N: p1 J
to scatter' ?7 S/ F+ R9 J% b' m
ask turtles with [remainder who 5 = 0]$ n+ {, }4 w3 [5 Y( W! f
[
0 q) D# w8 d+ t8 ]& p+ ~! bset xcor xcor - 6 + random-float 15% L5 q2 X7 v% J) L% @2 h
set ycor ycor - 6 + random-float 15
% o$ a. x+ `0 p$ o- y' R]
: l( ]' E& M( e. w' @- tend0 X  X4 W+ n* U, l
to unit_plan
8 o) y+ R9 e8 m1 fask turtles [1 }& ]6 i) v, E* v- A; H
if (remainder who 5 = 1) [set a who
- ^6 q& `# `5 L4 }$ Q1 ]/ Y2 ?  A                          set x ( 0 - Wid / 2 )
$ `9 V. l3 |1 r/ B- M6 f. Z7 D" ~                          set y  Dep / 2 ]$ u  _6 R# o1 H. @5 V
           set b  int (a / 5) * 5/ I; h/ ~& I2 n) N
    setxy ( xcor-of turtle b + x )% n# V$ J2 t0 v' Z& D+ p
          ( ycor-of turtle b + y )
  h1 t1 [+ m1 K3 {4 t7 Kif (remainder who 5 = 2) [set c who
  O# B% K3 R5 O- F4 h% B                          set x ( 0 - Wid / 2 ) / g$ _# Q' B9 G2 Y6 ]  f( c
                          set y (0 - Dep / 2 )  ]0 p% ?3 W9 m; k  _; ^. g  K
                          set d int (c / 5) * 5
+ E/ p/ w9 Y; @: o   setxy   ( xcor-of turtle d + x )
7 `6 q( f8 @0 I; `( v; v           (ycor-of turtle d + y ) - Z. K7 p- P, C2 M+ d
         
, n; W. }8 P, N* Q* r9 Z            
: t( \* m( r( c+ ]if (remainder who 5 = 3) [set k who
$ ]# @" z' W2 J- [                          set x( Wid / 2)  
% A0 U5 |4 ~# F$ P* w7 y                          set y (0 - Dep / 2 ) ]
8 |  \  j' [( X% {/ Z- u' {* t                          set f int (k / 5) * 5
. M% e* i8 H( e" Q  setxy   ( xcor-of turtle f + x )
$ |- x% m, s, r           (ycor-of turtle f + y )
3 G  f) e7 H: |& J. S           
6 ?7 @( `# I8 Z1 t& e$ z           , [4 h1 ?- Y: w2 v- w5 [; U6 X
if (remainder who 5 = 4) [set g who
# t$ f2 d' v' W# b: W4 x4 o                          set x Wid / 2 5 V2 x2 H0 x' p2 i7 b% ~3 q2 ]
                          set y  Dep / 2 ]
2 r; J+ B5 p% z& `" \, [: C                          set h  int (g / 5) * 5$ v9 l0 j  N& Q1 t' r
  setxy   ( xcor-of turtle h + x )! x( U6 G) J3 j$ v
           (ycor-of turtle h + y )
* l7 T. `+ P; K5 R                          
3 ^/ s* W- Y" |. `& [5 `: `0 w                          : n7 n  ?" p) m, ^
                          ]
, i( }% v: J4 ^" N' W1 G( f; ]9 [end
$ D3 z2 b( x6 o  R; ?% t
4 Q( T/ O! R5 M% T[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
# u0 e" a. n- S# K) I应该是# U/ [5 z# d# s! P/ f1 h
ask turtles [. {* k2 N# u, C5 O/ U( {: G- s
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) ) H- N/ g( ~- n% K- m  L
                          set y  Dep / 2 / ~! U- l) g9 L9 N4 P  y
           set b  int (who / 5) * 5
8 n1 ]* h5 `5 c    setxy ( xcor-of turtle b + x )# a8 ^; Y: Z: H1 i/ M+ w+ m2 c
          ( ycor-of turtle b + y )]]# X2 \" A9 y/ a6 S/ U0 D
end
3 F( K% H4 A: d3 D0 a& M之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-16 22:53 , Processed in 0.014901 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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