设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6919|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。. f+ B$ V1 O- A

* S% l: Q- u: `9 X但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。3 x- s0 P- z6 M6 Y% k) g( o; t+ K' `
' P/ q5 J6 m9 j* F  e
turtles-own [a b c d k f g h
1 g. o( u! H3 G: b; r& l  x y     ;; these are the leaf-turtle's offsets relative to center-turtle : J6 A2 S1 G) `& }% I" g
]' ]( |, l/ a2 v9 [
to new
* N6 L0 k3 S% _# j8 ]. `4 F4 @4 s  ca7 p; l( F* ]( m8 p1 c" v
  crt 5 * num_of_building
9 Y& W, Z! h& c: p  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]* V2 }1 J! C- G/ p$ R  x
  scatter     ;;keep center-turtle random positions 6 e& Z6 r7 j  U/ H% `6 n! C
  unit_plan   ;;make up the building plan- Q6 U4 ?  i1 h; m
end8 ]; I, ~: P2 u, Q- |8 I- u
to scatter1 z6 w: k, J2 x8 w/ u
ask turtles with [remainder who 5 = 0]
7 v( N* _4 ]2 ]7 B: \5 g  x0 I$ f[. C( A4 ^3 y$ K, _
set xcor xcor - 6 + random-float 15" K" m7 r, H7 z- T: r' x( E
set ycor ycor - 6 + random-float 15
! a$ E) r1 X7 H  \% ~0 V]6 T/ o4 Q- U& M8 V9 l- ]
end  V( g: q4 A6 `/ G
to unit_plan   V6 G. G2 ?  f5 G
ask turtles [. Q" |1 d3 _! K$ C
if (remainder who 5 = 1) [set a who " I7 b* ^7 c2 `: J  g2 k
                          set x ( 0 - Wid / 2 )
, W: X8 o2 c3 C( H3 X$ [                          set y  Dep / 2 ]1 A* \. C  m, p8 u
           set b  int (a / 5) * 5* @0 m% y2 H6 Q$ J2 o
    setxy ( xcor-of turtle b + x )( ~, ?2 q$ G4 I* v
          ( ycor-of turtle b + y )- a- |+ E% o2 i
if (remainder who 5 = 2) [set c who
. g" l# M+ ]. |- U5 l                          set x ( 0 - Wid / 2 ) . p# E6 V; m  e
                          set y (0 - Dep / 2 )  ], f* o, v, n7 B0 R: p- C% d/ W( v3 ?
                          set d int (c / 5) * 5- e- R$ E) H& q+ \) z; V
   setxy   ( xcor-of turtle d + x )( `' y' Y% B+ k) J! t9 d5 U- P
           (ycor-of turtle d + y ) 4 s1 F+ F( l% \& C* m) n
         
0 }0 L" W5 M2 G2 l: D. I9 Y            
8 |) u8 t+ B) A6 |: nif (remainder who 5 = 3) [set k who# q5 ]% I0 W- N; f' _, z
                          set x( Wid / 2)  # {  {$ f5 |! L9 a- L
                          set y (0 - Dep / 2 ) ]
/ t* J+ h1 i' J- s0 O% @% n                          set f int (k / 5) * 5
% R0 s: R& f! }5 z  \7 a  setxy   ( xcor-of turtle f + x )
, G* N& [+ o. x' z* \$ X0 d           (ycor-of turtle f + y )
& e; V( Z+ e$ w2 k           
! @: U5 i/ n. d# j( K7 O6 f5 Y1 a           3 c' L+ n2 {! P6 O' f9 O+ e/ \; o3 }
if (remainder who 5 = 4) [set g who
8 [% z: A; d, w$ W8 _4 M, w                          set x Wid / 2
+ V, \! }$ [! F                          set y  Dep / 2 ]
( M* V/ c2 W7 u$ s) s                          set h  int (g / 5) * 5
( r4 P) t: Q9 Z  setxy   ( xcor-of turtle h + x ): a; s5 x4 @3 O; z: B) l( M9 U  E
           (ycor-of turtle h + y ) 5 e; W% r* J' T9 W! [
                          4 k. n+ `+ ?! _& z9 m
                          
' g: Y3 X: D+ p' V9 k                          ]" X# ]1 s8 T4 M9 {3 h
end& Q( R# O- u0 ~4 Z; A$ n! G
4 i" N# C% s  @& P
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,4 M* l, R' m$ h
应该是
; n  @; \! Q/ U, t8 B% S( \ask turtles [5 C0 a4 R+ l: F; h3 E
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
, n* n, a  N$ |: J8 x3 L+ w                          set y  Dep / 2
& `% A' v0 m) C& b$ |2 R  i7 m           set b  int (who / 5) * 5
% _7 t$ M$ o, G; Z0 h    setxy ( xcor-of turtle b + x )$ C( o! N" }% T- p' {
          ( ycor-of turtle b + y )]]0 u% b  _. U; i2 u2 Q' ]
end
- W; o0 l1 @( J. Z. e5 Q7 v, c之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-9 22:42 , Processed in 0.015358 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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