设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8258|回复: 1

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

[复制链接]
发表于 2008-4-10 16:36:43 | 显示全部楼层 |阅读模式
我的模型,原意是使得每五个turtle成一个矩形,这些矩形随机散布在一定范围内。% C5 r2 }3 Z1 l& S% z

5 _2 D' l7 e2 k但是运行结果所有的矩形重叠在一起,只显示一个矩形。请大家帮忙看看。, T3 K8 E* _3 y& A; u
; l3 m$ |# R# H9 D% y* Q5 N. N. O
turtles-own [a b c d k f g h( E+ |: C- X: `: u$ y" ]5 l6 d
  x y     ;; these are the leaf-turtle's offsets relative to center-turtle
) R9 k+ a; p" O0 U. V% v6 O  R) N]
8 @- `+ U' g8 Pto new: {9 Q- f' y: N. Z
  ca. I7 K; ~8 z7 P# w, a7 O
  crt 5 * num_of_building
8 D# d3 A/ i+ K" M  ask turtles [ifelse (remainder who 5 = 0) [set color red][set color blue]]
9 A; c' `3 B& Q% F  scatter     ;;keep center-turtle random positions
5 F1 q- L2 S9 o0 W8 R  unit_plan   ;;make up the building plan
+ x0 [9 H5 v/ C; E9 Uend
: V. w- z2 Y' O& _# V: E9 jto scatter& |% l4 d/ Y; U7 z( e6 X
ask turtles with [remainder who 5 = 0]
2 c! L( J: Y' S! {- v9 h" @6 K[. `+ n* U2 G# T2 a
set xcor xcor - 6 + random-float 150 o% D! W& O9 G
set ycor ycor - 6 + random-float 15
5 G8 O7 o0 I* Q4 t6 R% Q; W$ h: _0 s]
/ ]+ L) g3 k9 D; v4 ~- C7 yend8 y! D! z1 W1 }0 _; ^: p  u
to unit_plan
5 S7 z/ }; s' T9 ?& _ask turtles [
1 j4 ^2 f& u' x# F% [. D- ]if (remainder who 5 = 1) [set a who
, i4 i1 ~( B+ g* Q0 w                          set x ( 0 - Wid / 2 )
- J; ~' j  X" [% B+ Z4 V                          set y  Dep / 2 ]
, Z/ @  w2 t  N           set b  int (a / 5) * 5, B# f& l; I/ F7 j# S7 b, F
    setxy ( xcor-of turtle b + x ); e" H$ E1 S9 ?5 C: H$ P; A
          ( ycor-of turtle b + y )
3 H# B. v. C0 f+ l0 ]& xif (remainder who 5 = 2) [set c who
8 Y$ u8 O, R  C1 G+ C' Z0 [                          set x ( 0 - Wid / 2 ) * I3 w/ r, R1 J* N4 |) n+ l
                          set y (0 - Dep / 2 )  ]
  q  p. s) a3 i" I. B  ^) C                          set d int (c / 5) * 5
6 H2 n3 Z- [% ?" H   setxy   ( xcor-of turtle d + x )
/ d6 F" S$ ^: c- y           (ycor-of turtle d + y ) & F; R( K! B  q5 l
          & a: {9 O: _$ o8 C
            8 E2 n- Z  |- ]
if (remainder who 5 = 3) [set k who, d, {# N5 C; `1 G
                          set x( Wid / 2)  
! j" O$ Z3 h% L' V) h3 N# g1 I                          set y (0 - Dep / 2 ) ]* \# p5 ^7 s9 ?+ s* w) F
                          set f int (k / 5) * 5
# A1 v- w. n/ W  setxy   ( xcor-of turtle f + x )* X& ?$ J$ f3 j" _4 z
           (ycor-of turtle f + y ) 5 S$ t) s! L1 q6 s
           
1 r! ^2 T8 a6 @           
9 G% x2 l9 K1 _# Jif (remainder who 5 = 4) [set g who, @: ?6 J3 k: T3 Z- I* j8 X; e: R
                          set x Wid / 2
% n1 v$ e2 Y4 \+ Q: Y% ?+ |                          set y  Dep / 2 ]
2 R5 F3 v& i# f$ o+ N                          set h  int (g / 5) * 52 X% G$ i- o9 @9 T
  setxy   ( xcor-of turtle h + x )% ~1 z& E3 ]7 t5 p
           (ycor-of turtle h + y )
0 M/ y& V5 z0 o, o! w                          
8 I' J4 Y8 o. B. Q                          / ^2 h- P& k  p- p" x8 D5 ~6 Z
                          ]
: _4 e" J2 L  i4 I, e8 S. ?) @end  ]0 o! ?7 C# @8 q; }  O
+ c# q$ \; O& v7 l
[ 本帖最后由 etamina 于 2008-4-10 16:41 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-4-11 13:26:12 | 显示全部楼层
已经解决了,
$ S0 r9 l& v7 R2 N应该是/ n  ^0 l7 J# Y4 a. f" {
ask turtles [
) W# A$ ?7 {& M1 Xif (remainder who 5 = 1) [set x ( 0 - Wid / 2 ) ) l/ a& \! N: ?! x
                          set y  Dep / 2
  V1 V3 f  F/ K4 j8 t9 J5 e7 I8 h           set b  int (who / 5) * 51 ]6 _; m" p3 ^4 v; y1 u
    setxy ( xcor-of turtle b + x )- H4 p7 L# y7 A  J2 F6 V
          ( ycor-of turtle b + y )]]
. ?; z1 i1 |% a/ r2 S! `% Mend6 P1 i5 O2 k- ^, `, q
之前有个括号位置不对没发现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-26 01:15 , Processed in 0.014671 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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