设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5931|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
) x' h: M( t8 O" F! T/ B" Z) |( j5 ~7 ]2 a6 ]" ]: O
但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。7 k+ e: o4 ~5 F2 v. c/ K

" z) S! K2 m2 g1 X0 [7 C7 J& g- bturtles-own [a b c d k f g h
" C2 _& ~: `8 m6 V0 a/ O  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
; p9 a$ X- @# w]' N$ U, p0 w/ e) f- k( k
to new4 A# M$ ?! [& h, P$ n% r0 W; f
  ca
; q9 t, X+ H1 Y( _# g  crt 5 * num_of_building4 D0 C" c, M2 ~' Q7 c  A
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]], }" B+ E  S* J, R4 x$ J; J
  scatter     ;;keep center-turtle random positions * o: J" V5 |% {. ^: X9 B+ `4 ~" @
  unit_plan   ;;make up the building plan
( ?' F# j5 |' z8 Gend
( y" e/ ~# r9 n0 M  kto scatter
% L9 ^0 B# f! K6 T  a1 h1 x1 aask turtles with [remainder who 5 = 0]  V8 t7 Y2 `% z1 J! p8 U3 S
[
, f. _9 I# |; Nset xcor xcor - 6 + random-float 15
' [- v9 o, s' U7 w- }" o8 C7 ?set ycor ycor - 6 + random-float 151 k: h3 p( {7 L; Y! u9 S
]' T, F! q  O) v0 k& o& i* J. a; A
end% ]( n$ o1 m' ]/ v' v1 e) a
to unit_plan * ~: l$ E0 G; C/ W' D# t3 N; W" L; E
ask turtles [
9 V! F) ~$ ]! Dif (remainder who 5 = 1) [set a who ( U& `' e8 ~4 i4 B7 c% ^
                          set x ( 0 - Wid / 2 ) * ?* [" ^1 j1 ^7 N2 f
                          set y  Dep / 2 ]  I0 m' ~. b8 y4 v
           set b  int (a / 5) * 5! v4 \; f8 G. R4 A- s
    setxy ( xcor-of turtle b + x )2 B7 x, |0 ?+ o- a8 `4 a2 X9 a
          ( ycor-of turtle b + y )# H  K/ W1 W( \) ~- u* R
if (remainder who 5 = 2) [set c who
& R& n" h9 j; g# ]7 ?5 [) R8 Y) N                          set x ( 0 - Wid / 2 ) 3 _( g  x; H" a7 n9 f2 Q
                          set y (0 - Dep / 2 )  ]
6 L) k" W0 N: K. |( [                          set d int (c / 5) * 59 C2 q% L9 m7 B7 ~$ ]
   setxy   ( xcor-of turtle d + x )
2 q( ^. D: ?1 T! d( c           (ycor-of turtle d + y ) 6 S; }8 g. S/ a7 ^
            Q  y* [8 d- z' x! ~
            & [1 Y  w( t4 z# p1 ^3 }
if (remainder who 5 = 3) [set k who
* {4 d  a' R# n$ H' R7 r3 ^1 ^( m                          set x( Wid / 2)  
0 T9 q+ d+ k2 A3 R7 k                          set y (0 - Dep / 2 ) ]
. R) _  S' G- S, [5 p% D" Q                          set f int (k / 5) * 5! b' z/ e# G" y) f5 p; r' n" R
  setxy   ( xcor-of turtle f + x )  z* X* `8 c, {
           (ycor-of turtle f + y ) 0 @& b5 {$ c& i  s2 L
           : o. j& X2 Z) Z/ _  E+ _
           
! W+ |: j: |. ^' C" O" X& ?$ @if (remainder who 5 = 4) [set g who
" U& B9 [* K9 f( ~                          set x Wid / 2
, ^1 q6 `9 b9 j6 A) l6 Z6 x* a                          set y  Dep / 2 ]
+ y9 p5 U/ S/ j# [                          set h  int (g / 5) * 5+ I# r" X' M# t0 r
  setxy   ( xcor-of turtle h + x )7 p1 m* |6 t) m; R% d! y6 q2 X
           (ycor-of turtle h + y )
9 A1 E; }# @6 U  j7 s, w1 |                          
; `) Z1 Q; Y% Q( a" {                          
0 D0 U0 _3 Q# P, @9 }2 j$ Y                          ]
- ]' r- d  N0 P$ a, e& h5 v6 {$ Y0 Kend
2 v- b& Q! i( f' G3 E6 J, |% n' o: h0 W' J' p$ r8 d7 X
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,' p  T  O7 f& D/ z1 ?
应该是9 |" W6 s" v! d" y, Y/ ]
ask turtles [7 K& T) S/ u' T+ u, l7 z" A
if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )   R# H+ u! X7 N* n/ s. E
                          set y  Dep / 2
' T! q. @" g9 T6 X- M" T- z           set b  int (who / 5) * 52 N4 @# W; }/ `' j
    setxy ( xcor-of turtle b + x )
. ?8 {1 M3 I8 l5 j' l" i          ( ycor-of turtle b + y )]]' P) C  l7 }4 D& q- o- D; r
end
& S- v* c6 O7 `7 _6 {! U之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-7 00:33 , Processed in 0.016104 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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