设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6778|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。# r- }1 r: A* p2 ~7 {. |

* r! ~- Q: B6 |8 c8 Z" v0 x但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。0 y+ @/ Y$ v: D3 A) t) C2 W
  n* ?+ v/ U) _: K3 _& Y
turtles-own [a b c d k f g h$ t" V! K! C5 q; [" o+ D9 j, Z) b
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
; Q; Y% X/ V! g]% r3 j8 u, R' M! N0 N$ N% b2 X$ l0 v
to new9 Z+ \8 ~8 R2 C# i+ ?
  ca
; d5 a# i; W( z# r1 p8 F  crt 5 * num_of_building0 Z, ~4 |- ]8 W9 c3 e
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
  t7 N. q7 \6 Q: H$ m- D  scatter     ;;keep center-turtle random positions " @% u; ]: l, [! D$ J
  unit_plan   ;;make up the building plan: }" \  }8 v# h+ L3 Q9 \5 F
end
2 U0 p( A0 {  r, i4 {to scatter
6 M" r: E4 U# B; cask turtles with [remainder who 5 = 0], y, t1 {; q/ ^& B
[1 C  V. e' h9 j5 r( w' `
set xcor xcor - 6 + random-float 151 L$ z. S4 }' n( V+ b1 S& H
set ycor ycor - 6 + random-float 158 [$ X5 q9 w. n6 J2 ~) r+ c/ R" q( e
]8 n4 o$ U* X3 R. [0 l2 H
end. G0 g4 T0 v/ W0 W% p$ X* E$ N
to unit_plan ( W+ M9 h+ e. P# L. J' j5 A: _3 I6 D
ask turtles [) l5 |0 r! |6 A0 a1 ^8 K
if (remainder who 5 = 1) [set a who / Z9 b3 I" |" V; V# k) B( Z
                          set x ( 0 - Wid / 2 ) & \) Q9 a; U9 W: m
                          set y  Dep / 2 ]
3 C% `0 e+ |, y- }           set b  int (a / 5) * 5
$ C8 ~0 ]! w+ J# S5 D    setxy ( xcor-of turtle b + x )
; Y* V% I3 W' ?5 g8 T9 K: y          ( ycor-of turtle b + y )
& U, D7 h( W/ R- |- z* Iif (remainder who 5 = 2) [set c who
3 s3 p# [& f/ f                          set x ( 0 - Wid / 2 )
- p3 o: }9 n' F/ a/ i$ F. N                          set y (0 - Dep / 2 )  ]
( R5 H1 g, X! B8 A/ s                          set d int (c / 5) * 5
9 Z6 u: D# y3 ]   setxy   ( xcor-of turtle d + x ): j4 B; A) W& l( r% `1 _
           (ycor-of turtle d + y ) $ s$ l' ?1 w2 t( u% y
          7 Z8 o8 `8 w8 J/ X% K
            * @7 |8 @$ N" S" ~  b5 K" a4 o
if (remainder who 5 = 3) [set k who
0 {9 a" s: p! q  m                          set x( Wid / 2)  
  l9 W% v0 l1 e9 C                          set y (0 - Dep / 2 ) ]
# W$ \# A! V8 L% \$ r2 L2 q( ?                          set f int (k / 5) * 5( {5 x' |, z3 C$ R/ f
  setxy   ( xcor-of turtle f + x )
4 k* x8 Y/ J/ ^# j           (ycor-of turtle f + y ) , m0 D. P! H7 q' @7 B
           5 b' q# j2 @# m# R8 p' t2 V* [3 L
           ' N( j# Y5 b3 q4 P6 s( v
if (remainder who 5 = 4) [set g who, r) R+ x' U, l: `8 \+ r# T
                          set x Wid / 2
. j% T; Q: Y  ^" g- k4 i1 c; p                          set y  Dep / 2 ]
% O) T/ ]' V/ G. D                          set h  int (g / 5) * 5) U/ K# u4 v/ Q+ e* x: A( ^
  setxy   ( xcor-of turtle h + x ): g7 W, Y' c4 y
           (ycor-of turtle h + y ) - f2 ?' f2 {: H/ j7 Z+ x
                          . Y: g+ w$ P& h$ H+ g7 U1 @
                          
; x  p, s+ X0 F3 C, B7 ~                          ]- |) v5 q8 N& x: b; V8 C
end" J9 {% T  Q5 ]
1 N, ^& T% y5 L& e
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,0 l0 Q. O' A. s1 X- b
应该是4 G# u* I! q9 q3 I* N9 D
ask turtles [
* i- |& _0 A" `if (remainder who 5 = 1) [set x ( 0 - Wid / 2 )
3 h% F/ e. R  G! b3 H5 ~4 ?: r- g                          set y  Dep / 2
3 @. y2 z5 g, `& [           set b  int (who / 5) * 5: n  Q1 l# T4 I6 e9 K3 [
    setxy ( xcor-of turtle b + x )
3 T' v6 I5 x3 S8 C! m0 m          ( ycor-of turtle b + y )]]
3 W/ X" a3 N4 H- T9 V; J5 V! a. qend
- V( v- l8 b0 E' ?) C  o之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-22 20:15 , Processed in 0.014553 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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