设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6825|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
: Z" I0 ]3 C+ @: b2 @( Y
9 L1 c1 r& t5 D! \8 w但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。* y9 P5 R: J- L/ T5 V: a! T3 e

* u9 A: K! N# m1 \turtles-own [a b c d k f g h" o% ]! a- P9 Y* d
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle - N2 q' o; P4 \
]' p' R# o- C6 T) P
to new- P4 L( R2 g) y0 j
  ca
3 t: }( P! u3 ?2 }/ I6 `  crt 5 * num_of_building
. w. z5 H) c2 K  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
$ w9 I; s+ k5 T; f  U  scatter     ;;keep center-turtle random positions
& Q, U8 j* A, ~- z  unit_plan   ;;make up the building plan, P0 Q6 l8 Z- |
end" [0 k% q( b8 M
to scatter2 _" Z. o6 X# p3 d$ E( `& E$ J
ask turtles with [remainder who 5 = 0]
* Q  A9 \+ N& `# `3 u9 H9 L. [[
6 E- S$ o; W7 v; X  @set xcor xcor - 6 + random-float 158 [6 W9 S- T2 @! k
set ycor ycor - 6 + random-float 15
% Q% ^% L& @; f$ a4 _5 k]
& p- l4 Y: U0 `" Z$ u' z/ U1 Lend5 r! W$ ^$ F' b" l
to unit_plan
% i3 _2 h9 `( dask turtles [( }% Q( M2 b; G" C# P
if (remainder who 5 = 1) [set a who $ d  ]* c* D/ P/ i) c
                          set x ( 0 - Wid / 2 ) " R  X! V; X: Y# \
                          set y  Dep / 2 ]4 S: C' j0 D, @; d. k0 C4 c
           set b  int (a / 5) * 5
" i+ r) I( ^, H% _: ]    setxy ( xcor-of turtle b + x )$ G" i% S% f9 _" v5 j
          ( ycor-of turtle b + y )
/ M+ r! g, v5 w& \& [if (remainder who 5 = 2) [set c who
- I4 J9 v1 A$ C                          set x ( 0 - Wid / 2 ) ( f8 f% W! D& ]; I: i4 @' D
                          set y (0 - Dep / 2 )  ]6 n; @1 g- \# Q+ D
                          set d int (c / 5) * 5
0 W( h& V2 A- [2 O8 e   setxy   ( xcor-of turtle d + x )
* X6 X# _% k- b5 R9 P2 F           (ycor-of turtle d + y ) & X; L, B) Q" m7 V  u- U- I
          / b( c- @- p4 n
            
( y0 \1 z/ O( q! a& a" }if (remainder who 5 = 3) [set k who! F5 v1 r8 [  J" O& u6 I
                          set x( Wid / 2)  0 \# w. v0 ~9 d& T6 p$ V! H" @7 q! D
                          set y (0 - Dep / 2 ) ]
: b" N9 i; Y; X                          set f int (k / 5) * 5' F* r" X/ M1 F' [, W
  setxy   ( xcor-of turtle f + x )8 Y, J/ r  v4 R: @2 p0 n1 O
           (ycor-of turtle f + y )
  r" @" ?! P2 f           ) L7 ^0 o* u6 P4 W
           
0 l) g$ G  V( R8 @: j9 }6 w0 vif (remainder who 5 = 4) [set g who6 W, D# d# F3 N3 l( ?
                          set x Wid / 2
% P8 V" v. b: B4 R3 j# T' k/ N  z                          set y  Dep / 2 ]! E! t8 I! H( e/ _
                          set h  int (g / 5) * 5
' k1 u. R0 h# r# V% ]' W  setxy   ( xcor-of turtle h + x )2 f' g5 Z: }" a9 c' O' m7 E
           (ycor-of turtle h + y )
4 A' E! C9 u% W6 @# E                          
( N9 M7 h2 O. E, L5 L, t                          
0 e. X3 [, s8 \0 v4 i                          ]
: I6 p/ Z  o' m5 X; c: C2 bend# X1 E1 i9 A4 H3 b) X9 Y6 R
6 O8 M" E9 }3 D% O; r
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
0 a+ |* \0 k% {* x: S应该是
2 k4 ?8 {0 z  ?" G& j. `1 r3 r3 e7 P" kask turtles [
; y! l6 V( k* V$ L8 c: R7 \if (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) , Q( l' q# T5 Z0 E; d1 O- f2 K
                          set y  Dep / 2
5 B( L+ E8 F6 A0 B) t! H" `) t+ {' u           set b  int (who / 5) * 57 _& {6 n  t  B7 w5 `0 w! I
    setxy ( xcor-of turtle b + x )
, t* U" M5 P) E          ( ycor-of turtle b + y )]]
9 {5 v! O8 J# _7 a) i, Aend$ {. F8 a# @6 r; o7 e8 @9 D
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-26 16:09 , Processed in 4.256013 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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