设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7456|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
0 m. P( C- F: |$ k  r1 r; r. H
3 c- K+ c; S8 u6 w但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
/ k; c9 S3 A; C9 H/ d5 k0 v: i
, t; {- O% c/ w3 |5 L0 S2 g+ T/ bturtles-own [a b c d k f g h. _/ N0 t- f# A
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
. }+ j8 z4 J3 a) v3 \]: O# A4 R) ]. p  j' Z% d' g
to new2 _& h3 r* H! u
  ca2 j$ C% ^# [8 s! v  y: A
  crt 5 * num_of_building: B& z$ J; m8 K2 X
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
6 f/ Z1 R3 L% J  scatter     ;;keep center-turtle random positions
+ P$ J$ N' a' c& S) w8 g  unit_plan   ;;make up the building plan
5 l: c6 {+ ~3 Z. J: D# Eend1 c/ K: S7 M/ h2 g
to scatter
5 |# R# R' s8 L# I$ Z4 G7 |, ~ask turtles with [remainder who 5 = 0]1 Z9 g6 o6 |% n3 m# k
[
: x) u1 U8 [0 H. X9 ]! |set xcor xcor - 6 + random-float 15' n' v/ Z5 l' O7 q8 ]0 X
set ycor ycor - 6 + random-float 15
# t% t1 G' f' |]6 Y% z$ y2 U9 N' q: K! i7 E
end# m* Y8 d( l" g' o: @7 }. c% H
to unit_plan
9 ]/ X; T% U3 K2 j) Y7 u, N: zask turtles [
: A6 q/ y. z( {" ~4 H0 Mif (remainder who 5 = 1) [set a who - ?1 s4 F# N* n- d& I1 ?
                          set x ( 0 - Wid / 2 ) ( Z4 W- x$ `4 C- I% D+ J* c
                          set y  Dep / 2 ]6 a1 F* S# O( c
           set b  int (a / 5) * 5
( M3 a0 b% b% N4 P: Y' o2 v% g5 |& V    setxy ( xcor-of turtle b + x )
6 z7 G4 q) f9 Z2 t) y! K# L3 W8 ]          ( ycor-of turtle b + y ). m8 N4 h3 |! m( X. O6 V3 E
if (remainder who 5 = 2) [set c who
  w* B: K: j) }# ]; Z$ B4 p# I2 I9 A8 V                          set x ( 0 - Wid / 2 ) ) r! `8 k/ }. Y& S
                          set y (0 - Dep / 2 )  ]' q# X, p' I& ~  C
                          set d int (c / 5) * 5" l) `  E& y5 d& z- q* v
   setxy   ( xcor-of turtle d + x ), _& A" o/ V; U! Y' X4 U, S4 W' w0 z8 W
           (ycor-of turtle d + y ) 2 B" a4 j2 Z3 U; o6 c
         
: a* P. F& r$ i2 V8 o! R# K            6 ~* q' m1 M# i2 S% a6 g
if (remainder who 5 = 3) [set k who, H0 R8 T# }# v. g% F
                          set x( Wid / 2)  3 m; Y" Q' L1 [
                          set y (0 - Dep / 2 ) ]
4 D* b8 r( M; J3 L$ U                          set f int (k / 5) * 5
3 g; u7 g4 n* h3 n  setxy   ( xcor-of turtle f + x )
# ~; u2 P& u$ f           (ycor-of turtle f + y )
( f* O( w, Z# \           
# _: M. k! g8 n, u: I$ {; F+ s           
  }! D) T0 s% I4 h) gif (remainder who 5 = 4) [set g who; `# s. ]) O! l5 V" t
                          set x Wid / 2
  |  f) u& ]6 }9 B# \0 x9 P                          set y  Dep / 2 ]. a4 {& k" q. {
                          set h  int (g / 5) * 5
' B3 c8 d& f" m  setxy   ( xcor-of turtle h + x ): e5 U9 R9 K! V& R
           (ycor-of turtle h + y ) 2 q6 o8 b5 R4 g. |& ~. _
                          
6 K& o  s. M5 }3 F) C3 l* H                          
" ]" \+ u( Z/ x) \  _* t3 f                          ]
2 b- }4 g! X9 b* m6 ]end
9 A! T/ C. }  F( A
2 i# S$ z9 a1 ], z( }# {4 A( x5 U[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,' ?0 j/ J7 v1 t
应该是
% z9 {' k- @8 n1 l* A4 H0 w+ ]ask turtles [
& ~  w0 D+ ~8 P+ Hif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
( c5 D# W; @4 K                          set y  Dep / 2   x3 C6 A8 O7 T" u& r& d1 z/ O2 S
           set b  int (who / 5) * 5
: e- H% l. j2 z+ d8 U# z    setxy ( xcor-of turtle b + x )
% Y  m! `0 A6 {4 M+ h          ( ycor-of turtle b + y )]]
' D& F* f* h+ l+ A* M& ?& i3 C2 zend
! e& [" w5 d( r5 m之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-13 08:57 , Processed in 2.078452 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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