设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8842|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
7 S% @; x$ D2 ?( m) x- }2 Z" b- g( J7 P/ _$ d$ x: d( E+ t' I
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。+ _$ W+ ]: d6 v/ f

# P! c- A# l4 F' `turtles-own [a b c d k f g h! g1 E( A) i+ E. i. m
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
: I3 N* g+ |( I" {8 S]9 e) W/ \* V7 _; _- ?& }) V
to new
( f: k9 D, g9 h- z1 K( A4 N- r  ca1 y+ V/ W$ B/ Y! P4 @! A' C
  crt 5 * num_of_building% i8 t9 R. o& Y% b) \6 ^- j; s, S
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]/ I0 o+ T2 G4 C- q
  scatter     ;;keep center-turtle random positions
5 y; s4 b& l" z  unit_plan   ;;make up the building plan6 ~# r3 [6 K0 v" ^
end
; L7 t% `" _9 h8 nto scatter
: z+ I% s( g& Fask turtles with [remainder who 5 = 0]
1 R  t5 a0 f8 ~$ a9 h/ E% G[$ P- a$ ?* d6 \# T. w8 d* I+ T
set xcor xcor - 6 + random-float 15
& k5 N2 J2 x! o8 ?1 V  ]/ A* Z. wset ycor ycor - 6 + random-float 15; \" ]) m2 K7 k' E+ }, b
]2 V! V, J. g8 K# O
end- ^' }. n' l6 Z4 O: j4 R- V
to unit_plan
+ M; \- Y3 r- ~0 P% h2 o) W8 Task turtles [  ?6 p" }: o0 l8 k: c) r- x( T
if (remainder who 5 = 1) [set a who
; m6 u  R: F7 |2 G4 a+ \4 E5 Y* h                          set x ( 0 - Wid / 2 ) / V0 j6 {" T6 K
                          set y  Dep / 2 ]) b: X9 ^0 U- ?7 V- E( Y
           set b  int (a / 5) * 5% b1 d) \  z4 f. I( g
    setxy ( xcor-of turtle b + x )
7 ^, R' w3 @: Z+ H+ i1 a/ p" `          ( ycor-of turtle b + y )
0 I, C8 f' I' }# Lif (remainder who 5 = 2) [set c who
# b0 O0 [1 I) f( \/ K, j' K/ ^                          set x ( 0 - Wid / 2 ) 4 D) d# Y. e4 k, h: M" ^( Q2 p6 _3 r' i
                          set y (0 - Dep / 2 )  ]
1 F0 O% p1 m# t; S+ O                          set d int (c / 5) * 5
9 `* W  p# [( w4 I% |9 U+ b   setxy   ( xcor-of turtle d + x )
8 s$ W) ]. Y3 R. Q! d           (ycor-of turtle d + y )
6 K3 U1 {  a- O         
- i' Q! r; @& a/ i8 F            , i- \8 ~8 I# d* t; ~" X/ |' [
if (remainder who 5 = 3) [set k who0 G& z8 ~" [) d+ k% X* o
                          set x( Wid / 2)  
% T0 n) a  l- }& w5 |                          set y (0 - Dep / 2 ) ]8 V1 W/ H& l7 }
                          set f int (k / 5) * 5
& l2 ?: p; K9 N6 [1 m' x% o  setxy   ( xcor-of turtle f + x )
& B. i. H" {& R6 N( o- d# C           (ycor-of turtle f + y ) : @- D: r2 R% T& ]; M
           
. z2 R  l) \# V0 M+ [+ i) r           0 ^$ d7 \+ A/ V' a
if (remainder who 5 = 4) [set g who  m7 P' B, G+ f) Y
                          set x Wid / 2 % Z# l9 k. b9 C& q: M; A
                          set y  Dep / 2 ]
) o; z& A. t8 c5 ^+ {  }                          set h  int (g / 5) * 5
: F) s' s6 c4 D. k  setxy   ( xcor-of turtle h + x )
  u0 r: x7 U& g, c) ^1 l3 j           (ycor-of turtle h + y ) ! ?, H- T9 I3 r
                          ' J, N% g2 V' s2 B
                          5 o: D, K: W7 B
                          ]" X  _5 p" O. P" F) h
end
7 K0 W- Q* T5 n5 p' b% }" a' d; j$ `0 f
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,9 a) _$ f7 V) ?3 k
应该是$ ^4 D$ F) h$ k7 ]
ask turtles [' l3 l- W( X9 u+ q3 ]' m" n
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
& _) m7 c' i& J$ e! E                          set y  Dep / 2
) n( U7 ^; P+ L9 |- R           set b  int (who / 5) * 5
( ^' e" r- }" F( g    setxy ( xcor-of turtle b + x )
' _8 g. x1 Y+ r3 A/ }- T* R          ( ycor-of turtle b + y )]]2 p- P7 U& x* t) o/ i- u$ Q
end
& Q4 y/ D3 T6 \) n# A: g8 a之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-11 01:49 , Processed in 0.013715 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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