设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4880|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
3 i) g+ Y5 Y% S% e# Oto go
4 l- T* X4 k4 z6 y) m+ t5 lif not any? turtles with [not stopped? ] [ stop ]  ) F# i0 |; u; N5 }
ask turtles with [remainder who 5 = 0] [
$ `/ N. K! t. H- {" K( D5 g1 Gset close-mates  (turtles with [self != myself])with[
: A9 M. j6 v, t4 w# {. E, B" i(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
/ G/ H) s. C  y0 v; T: _+ v+ Hand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
9 u: t7 o% d5 n3 R1 Yand remainder who 5 = 0
$ m* [1 P6 Z6 C4 Q, a% G! ~8 w]                   5 b5 b; ~: l1 f' `7 R7 v1 K
ifelse any? close-mates ; g7 X4 ]+ M% V5 P7 @" n* {
[                                                               
) E2 E+ ^2 V1 L' Zset closest-one min-one-of (close-mates with[self != myself] )[distance myself]
  s+ u; b5 F$ P: R8 b" Oface closest-one$ w  K% ~) o, ^5 ^- b! r
rt 180
  A3 W2 R% S4 M+ u" ~7 a7 Zfd random-float step-size
2 h7 b5 ]. r# J: X1 g. v/ Uavoid-walls
: w, d( N3 h% x* t1 aset stopped? false]
( N! q4 U8 L# s6 k) @: v5 ]: E[set stopped? true] % h0 J5 M% q! s8 M: M. |3 B$ C
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成; {: X. A- d, z* J  [( j) h8 U
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
6 t  j3 I6 w6 l* K! M" @! G% U* f- }则可以顺利的终止go程序6 s; p8 l, T  N: r3 g; M
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-5 12:29 , Processed in 0.011879 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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