设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7151|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。: B, {0 ?/ V0 p# \
) m- ~# v; K0 |
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。) o6 Y0 u* U* w& D7 z; _' w4 o4 x
0 F8 M* ]8 L9 b4 l
turtles-own [a b c d k f g h
3 R6 p/ ?4 j- J+ C1 c. @9 w  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
! V' H- p! `* \2 N% Z. O8 `]
" E, Z$ D; }' H) C( Rto new$ s! x* ^& L' N/ a3 ^* o
  ca
( E9 ~9 M! e9 y! v  crt 5 * num_of_building" L* Z5 p) D; C5 ^: T  m" k7 _( I
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
' m, W" M8 o: N. A7 A; N  scatter     ;;keep center-turtle random positions
1 o- e# z- B( R0 B8 y$ l  unit_plan   ;;make up the building plan
- k( i$ M# k+ W$ v! M- h0 ?end$ R# u& H& l! V
to scatter& G+ e# h/ B3 n) {# K% q( D
ask turtles with [remainder who 5 = 0]' A8 c# }8 V, U. t! Q: W! i
[
) \8 T% U7 z2 R$ r2 X7 Q1 Aset xcor xcor - 6 + random-float 15% a0 {- h) c* F7 G1 ?8 D9 N
set ycor ycor - 6 + random-float 15
& ~2 _' Y+ Z( t5 c2 F* n]) q0 I# E3 Y2 o$ l
end
- B4 O. d- G" ato unit_plan
1 N4 J. W" t- m  wask turtles [# `# g( z, O% }- L
if (remainder who 5 = 1) [set a who 4 R; O, K/ O* L2 j1 `2 {
                          set x ( 0 - Wid / 2 ) , c5 m* a' u$ w# W
                          set y  Dep / 2 ]2 J, {+ [1 x* }& c
           set b  int (a / 5) * 56 r) ]: I0 p4 f/ R, {) j
    setxy ( xcor-of turtle b + x )
1 q5 T5 b6 O" d5 u& k) ]          ( ycor-of turtle b + y )
4 n+ F4 d, W; m0 pif (remainder who 5 = 2) [set c who+ g: Q; ^1 }* N' h0 E1 D
                          set x ( 0 - Wid / 2 ) ! p/ {" e4 ]* k" B  i: X
                          set y (0 - Dep / 2 )  ]2 `: g# N( D  ~
                          set d int (c / 5) * 5
1 A, }, q6 @( s# D   setxy   ( xcor-of turtle d + x )
6 W% h8 `1 N: }# t- P! V! ?4 X0 m           (ycor-of turtle d + y ) 8 A- z* {. n- l) N1 T- j! N
          2 `1 h9 N4 e& f3 C) f6 Y% b3 V0 S
            8 v& t# S7 ^) P( p5 e( @$ }
if (remainder who 5 = 3) [set k who. ]: d1 Y) F7 F. n) q+ n
                          set x( Wid / 2)  1 N4 B9 \( s% a) v3 J- x0 {& }6 G
                          set y (0 - Dep / 2 ) ]
* y2 o& a- r) @- p                          set f int (k / 5) * 5/ R  Y4 G& |  V. J8 `% f
  setxy   ( xcor-of turtle f + x ), S+ i3 n$ f" A3 Y
           (ycor-of turtle f + y )
% I. ?* A- G# t9 [+ |2 K% J           
1 R) z# l) a% q9 M; F           ) z; [. d% l! f7 y
if (remainder who 5 = 4) [set g who
0 ^. e3 y( }1 N# f  X& \                          set x Wid / 2
+ e9 B) |0 Y- Z- }8 o, H( w                          set y  Dep / 2 ]
8 H# A: y6 G' K0 h  {. X+ O                          set h  int (g / 5) * 5
+ n" N" i0 m" f( a" a/ M  setxy   ( xcor-of turtle h + x )* x: {5 e! m5 [" J/ H- t
           (ycor-of turtle h + y ) & v: {$ A. z8 O2 y& W
                          
1 O0 k: ^, I; g6 l                          
  g+ h' _  S- n0 ^8 Y1 R3 n' u" O                          ]
) S1 `6 o  P5 J+ i+ O8 Vend
5 w: z5 C( {5 o5 _& z8 Z: C9 [5 u2 ^+ [' }" o  y% z- V+ N0 t
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,5 F$ L) X. ^3 G& b* F8 `' M
应该是+ p& ?: S- m, E9 @
ask turtles [
' G* m' K9 I! b# {1 X( d# @if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
/ y! s0 E' t; F                          set y  Dep / 2
5 v+ G7 v8 F1 `           set b  int (who / 5) * 5
; v' ]- N# ?# L+ z; z    setxy ( xcor-of turtle b + x )
. m9 f8 z/ o2 Z          ( ycor-of turtle b + y )]]1 S8 ?* ~2 M+ s1 r+ I
end
2 M0 a  i, R* h之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-7 23:39 , Processed in 0.014617 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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