设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7922|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
) R- c8 c' k* z- W% C# g
/ z( `" H" I2 I: Q7 n' B但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。' P3 M- X1 ~; s% d" u. _% ]
# h/ R2 |, p' }3 y" v
turtles-own [a b c d k f g h
4 g  ^7 I, F+ f9 V" J: w$ y  x y     ;; these are the leaf-turtle's offsets relative to center-turtle * V; p# o. X: C& j2 @
]
- D/ t1 j7 \7 kto new
7 ^- r8 Q4 y, F7 @2 K  ca
7 e+ t: U2 v+ O1 a/ r  crt 5 * num_of_building/ w9 h4 G+ T5 t6 _2 Y9 d
  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]6 s3 s( a: U" E: J; F. X  A3 @! A$ {
  scatter     ;;keep center-turtle random positions
7 `# ^  K4 E' |7 p  unit_plan   ;;make up the building plan! o; {1 y7 P. r" D  @  I+ a' A, P
end
0 n3 T  `% C3 ~to scatter
$ A1 h; r- R8 p4 }  S# G& xask turtles with [remainder who 5 = 0]" y' c" e& X- T: x  Y
[) d% y9 d: z) }# e- L& t
set xcor xcor - 6 + random-float 15
1 w/ p# h. U5 S& k5 W& U, Eset ycor ycor - 6 + random-float 150 ~- C* h7 O7 p+ V; O" {1 C0 n
]
0 X8 y( f2 T+ b' ?5 P; R+ J3 S+ }end
- T  x9 i- W+ e# j) F5 Mto unit_plan
* ]1 O: L9 ]+ |7 \! }ask turtles [; W9 R2 L% ~6 G6 g
if (remainder who 5 = 1) [set a who 2 m2 R$ C8 M, V  J; ?$ I
                          set x ( 0 - Wid / 2 )
6 l: p& o. B9 R, N* q                          set y  Dep / 2 ]) G: `: w2 \" \0 B. _+ [$ U3 U
           set b  int (a / 5) * 5
4 F9 h! \. c. ^    setxy ( xcor-of turtle b + x )
, r) z0 y0 o, P0 L! n          ( ycor-of turtle b + y )' B% ]- W) ^( e
if (remainder who 5 = 2) [set c who+ p6 U( l: Y" ?8 V
                          set x ( 0 - Wid / 2 )
8 n6 O1 T% i  u" L* k8 B, `                          set y (0 - Dep / 2 )  ]
+ w7 }% E/ t! Q% Z% X                          set d int (c / 5) * 5$ i; o/ Z) ?' B& Y/ I6 p$ F
   setxy   ( xcor-of turtle d + x )% m) a+ Q' r8 d( G: X/ s. g* @* |
           (ycor-of turtle d + y )
0 @1 o# H1 b% f  v2 V9 E, ?: e         
- [4 u+ U4 g- v: z' h! ]            - q2 u  g' T. \  Z0 e, o
if (remainder who 5 = 3) [set k who
$ S6 e+ ?' g0 _0 f# T                          set x( Wid / 2)  
# l5 ?1 D, D' A0 O: k3 g# u                          set y (0 - Dep / 2 ) ]
6 W  J7 v8 Z7 \: G- Q                          set f int (k / 5) * 5
3 N' U6 W, C, x) N* s) w. e  _  setxy   ( xcor-of turtle f + x )/ T( Y( d' o8 y( `
           (ycor-of turtle f + y )
1 m3 Q2 v6 @3 Q7 t           
" }' \6 A7 a8 Q/ X" {! x& l           
2 [% s7 @% h! g) z8 P% sif (remainder who 5 = 4) [set g who( Y8 _' B6 J+ O$ i6 R" R9 I
                          set x Wid / 2
2 \% R5 L( d0 s( B" g) n# t                          set y  Dep / 2 ]
! }# H/ }1 Y" j" ?7 h                          set h  int (g / 5) * 5. @2 Z$ e- Q9 h+ V
  setxy   ( xcor-of turtle h + x )
7 q/ ]6 s- E+ X0 H* ~0 U& G' p  R           (ycor-of turtle h + y ) 7 O% O) T, C4 x1 T7 b3 U3 a
                          
; a0 `& H, |+ \5 H2 m2 `                          
5 \7 f$ a$ x+ @! I& H                          ]+ o. x! {$ o2 ^4 z- [2 M
end
) f4 x+ I! s# I( [$ Q7 N! [4 F9 Z* f5 s6 j
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
1 G- q* B* v' `0 o; n4 Q应该是( M& O5 v( p1 z
ask turtles [
1 i4 {- A6 q. C" t1 m' z: A/ G& |) eif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) 8 c' x, @( a5 O) P" _0 s! g
                          set y  Dep / 2
3 C8 c/ {5 L* U           set b  int (who / 5) * 5
! ]% M6 S+ N  X0 N2 @    setxy ( xcor-of turtle b + x )
( Q/ M/ o& i4 ]# W( J- E8 C          ( ycor-of turtle b + y )]]
' `2 A* T/ S* b+ }# P" c) R" Rend
  {- \: m' q' u$ T之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-18 01:32 , Processed in 0.017864 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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