设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7509|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
" v. u. A1 p( d2 N1 c' b1 G# f, @5 {1 U  \8 X0 x' @
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
, i9 ]3 s+ g6 {1 ^, C+ W; p4 o# F: \" G9 ]
turtles-own [a b c d k f g h+ v. _% y* g5 N8 i
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
& n# k* S2 T% b# \# `9 L]
+ r2 m% x8 Y% c* S* P/ i/ Fto new
9 P. d9 R2 l! k2 F  ca
# U+ {+ R+ u% A, C, {  crt 5 * num_of_building
4 s8 ?4 l. f/ [' Z3 [  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]# D1 @7 @+ q1 }( P! Z8 K
  scatter     ;;keep center-turtle random positions 0 N  z- ]! x5 {( w! Q
  unit_plan   ;;make up the building plan
" U* }# C- H3 P7 k! Tend: I( Q  b2 F: H% R4 L
to scatter
/ J# S1 S3 [: ?# N& L+ g" Pask turtles with [remainder who 5 = 0]1 m" [2 L" W1 t! ]- E0 \
[
+ [( {( q$ @  h/ Cset xcor xcor - 6 + random-float 15! T, Y+ J. `  v- R" J
set ycor ycor - 6 + random-float 15
# r. \' p5 k, g  I( i]
% p* R" M5 t- e! fend, m6 v9 n* b. y- f( u3 ~
to unit_plan
$ A' q+ J3 }; y; E: dask turtles [6 x& S! a8 N6 k: i
if (remainder who 5 = 1) [set a who * l" c  i. ]7 I, }
                          set x ( 0 - Wid / 2 ) & [3 m! ?, w0 k/ R) H
                          set y  Dep / 2 ]
' w$ q( f! B1 V- t1 E/ K+ q& q! \           set b  int (a / 5) * 5
4 Z! c, o# g9 S0 u% x    setxy ( xcor-of turtle b + x )7 z6 h( H8 V* q% ]( M% L" ~( Z
          ( ycor-of turtle b + y )
9 R: H& B4 F5 M1 O* ~  _. w5 }: ]if (remainder who 5 = 2) [set c who3 T; i) _8 Z* _! t! \* d
                          set x ( 0 - Wid / 2 ) ; d9 ^$ X# [2 U" ^3 H/ \
                          set y (0 - Dep / 2 )  ]
4 r8 P* b* h" V9 i8 L* g8 @2 a% G                          set d int (c / 5) * 5
. m- {, ]6 z+ f! D   setxy   ( xcor-of turtle d + x )
2 ^# L: u1 K% B& B! U           (ycor-of turtle d + y )
* h3 O) L3 C: c9 w% A. o/ l( b, r          8 f- c# ?8 ^  V" J
            
' ]; u4 D$ k# X/ k( q* G0 `if (remainder who 5 = 3) [set k who
& U/ q/ d, y& ]) D& i6 X                          set x( Wid / 2)  
5 y- W3 A2 ~- [# m% X                          set y (0 - Dep / 2 ) ]
# v, S8 F* z5 ^5 J                          set f int (k / 5) * 53 J6 ], v$ Y7 h# \* R% L/ i9 A6 b
  setxy   ( xcor-of turtle f + x ). t2 J) j, i- }% P
           (ycor-of turtle f + y ) 7 H9 h6 f$ s* |: s1 V$ C9 O" N' i
           % f' v) v1 U: [0 M& j4 e* ]; j8 V+ F
           
' S' h( W9 Z$ F; I& Y/ \! Cif (remainder who 5 = 4) [set g who+ y3 {0 j: U, V* G
                          set x Wid / 2 " J# D8 @  y5 N) \
                          set y  Dep / 2 ]
' n$ {# n" H* K6 K                          set h  int (g / 5) * 5
* c$ s  I, k% g' Y( B  setxy   ( xcor-of turtle h + x ); d, m! z% X; ?; T0 r" D! [
           (ycor-of turtle h + y ) 2 B6 c( V, y0 X  [, w/ A9 U) w2 X9 r) W
                          
4 k( X+ H& R. z! l: y+ `8 R                          
. Q1 T5 ?' e6 d4 h- X                          ]
4 Y4 l1 E/ e" t$ t" Z- Q  Q1 @* gend$ l7 L8 a; A! J, {$ e9 a
4 {0 U3 K: P5 E" j7 @6 U& h
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
: ]4 Q* Q0 l8 P8 E7 E应该是1 d* [* B! }4 {; i1 g9 m+ s. n8 r; {% }8 Y
ask turtles [
9 }. V1 [2 _" t, K2 @& fif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) , O( h2 ~8 z5 C! J
                          set y  Dep / 2
% h6 s/ ]; l% B! B           set b  int (who / 5) * 54 k# L, ]$ \- B& o, E' D  L
    setxy ( xcor-of turtle b + x )$ O$ i& X& |; O! [
          ( ycor-of turtle b + y )]]
3 P* Q. M) C1 H) s* A* bend( X' J! \' B3 Y+ B8 U  F
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-20 04:03 , Processed in 0.018882 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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