设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8923|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。
% t+ I, F0 y4 |0 R
$ Y' ~$ T. N$ K- `) V但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。
: S( G  {; S  E+ N+ d' h* G6 Z' }8 f- [+ z# c+ W3 o
turtles-own [a b c d k f g h$ j1 c% z$ R9 o* j6 d6 X
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
0 D$ c6 I& ?* H9 N]2 F6 ?( c" e! i1 M- G
to new) z( g' M) z# @6 ?  Y7 \5 i( E
  ca- Y2 ]6 Y- D4 u0 K) t0 ?
  crt 5 * num_of_building
2 i3 _7 k; T/ {( Q  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]$ `0 I$ ~- Z/ Q7 P, c$ u
  scatter     ;;keep center-turtle random positions ' U: a) t- c( F( H; z/ w6 A* n
  unit_plan   ;;make up the building plan" N  f4 Z8 x8 `6 t
end4 j0 K' U8 E  S+ ^
to scatter
$ _9 k  n# G( R; P9 cask turtles with [remainder who 5 = 0]
8 ]5 }( V5 [1 Z! _% z% \: ~, h[
, v! V  L& o7 `$ Eset xcor xcor - 6 + random-float 15
! v" `" b# r1 t# @/ d7 zset ycor ycor - 6 + random-float 15
# J" m! }+ @% y# q2 D# I6 Q]
2 F6 q3 ], V4 G5 }end# E# z2 W$ q0 f3 u" o$ K! T5 z+ S
to unit_plan
& \4 y* s/ b) M& I0 Eask turtles [
% V' |3 \9 H% v$ kif (remainder who 5 = 1) [set a who 0 O8 V& D, E# F2 l6 D$ |, U
                          set x ( 0 - Wid / 2 ) 3 o1 o# m! |7 I# y
                          set y  Dep / 2 ]
$ d: `8 S' A4 n1 j9 h8 o           set b  int (a / 5) * 5
- q6 N$ n- D. {# A6 M; m) L5 @1 A    setxy ( xcor-of turtle b + x )
% L7 d# R9 p! w  F8 n& u9 T          ( ycor-of turtle b + y )
+ i% k7 y7 x3 Tif (remainder who 5 = 2) [set c who
, G7 d( E% D# l: }3 W                          set x ( 0 - Wid / 2 ) - T% m5 |* D$ `4 v: o% l1 |/ ]7 C
                          set y (0 - Dep / 2 )  ]  T# A2 ~9 A( a8 V) f
                          set d int (c / 5) * 5
0 D: ~& R+ P- x  ~, _  E   setxy   ( xcor-of turtle d + x )
, G$ A- J7 @4 I. K           (ycor-of turtle d + y )
: I1 f, z  w# u  j0 R! p* @         
( P# R2 Z7 m- P$ w            3 P6 ~- c/ e; O# s
if (remainder who 5 = 3) [set k who
. t/ k) h, E" U                          set x( Wid / 2)  
( Z! R* F+ `$ \  M                          set y (0 - Dep / 2 ) ]5 z% z# \% A5 ]+ G: j$ c4 \. s
                          set f int (k / 5) * 5, M) q7 }: D  j! h) T3 ]
  setxy   ( xcor-of turtle f + x )( T) Z! o0 l5 u$ D. s- F/ Q  L( |/ e
           (ycor-of turtle f + y ) & d9 Y6 c# i$ e. f; R
           
" t* j6 @# u! l* s           
% c5 u0 I) S7 j& h7 tif (remainder who 5 = 4) [set g who
" R6 J5 x, P( M6 c* ~                          set x Wid / 2
2 m8 Q# z4 d! j: s8 X8 {                          set y  Dep / 2 ]
5 Z. {% X8 B+ |9 V/ a+ b4 F                          set h  int (g / 5) * 5; N+ v- Z# G- A' r. Y, D% a2 W
  setxy   ( xcor-of turtle h + x )3 R% k& m( y" j2 [. s  A
           (ycor-of turtle h + y )
# [" b2 d$ c) g+ q% k, A* {                          . e+ G5 a1 B& ]: e
                          
/ V7 ]$ x' B5 Q  U/ ]0 W& l8 J1 a                          ]) j% d) f- d$ X- O- G" {5 T
end
3 d8 O7 K# \$ }! `9 ]/ y! Y  K4 y9 r& W
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
6 p0 D% e" j5 q0 L9 l4 W应该是( t- s# M# X+ s( `
ask turtles [
6 A' J) H3 M2 |( W9 L/ hif (remainder who 5 = 1) [set x ( 0 - Wid / 2 )   }/ w4 P/ K% O( d$ q+ d3 X
                          set y  Dep / 2 * S% c- n; P, p
           set b  int (who / 5) * 5
$ \7 F  O: F# N& e+ Y/ u  e' g    setxy ( xcor-of turtle b + x )) r6 r6 ?5 w% X
          ( ycor-of turtle b + y )]]
$ E8 |7 S* h9 @; [+ Q3 {end
6 {! `0 x& v  J' H' T3 @9 o之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-24 20:14 , Processed in 0.027734 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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