设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6410|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
2 z% I1 h/ S2 {to go
1 {# j) w7 ]- _7 R- v) qif not any? turtles with [not stopped? ] [ stop ]  * Y: B9 g- T; r  s  a# e3 n# f% `
ask turtles with [remainder who 5 = 0] [
7 U: ~$ \2 R4 B: {2 i& Sset close-mates  (turtles with [self != myself])with[9 o4 R: n( Y7 y8 ?
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
$ g& X  V3 T9 h: }3 H4 w8 l5 gand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) / ?( E# S- ]' S% k: J% G0 j3 C6 F
and remainder who 5 = 0 4 v# v$ j$ {; a- F+ H% [/ H5 q5 T
]                   * b) Q) \5 R# C# F+ r6 f
ifelse any? close-mates
% w4 g- e& d; h# {* Q. f' n: w[                                                                / z. B6 ]8 }1 ]9 v
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]1 M: D, ^% d: h; H
face closest-one
" X3 ^! k# P8 P: H  e1 [+ L9 Mrt 180  B# A; U# g' }9 b( ]3 Y7 W
fd random-float step-size1 `+ i; ]/ y7 z2 o, {
avoid-walls
% t, i& ]. ]3 b3 g$ gset stopped? false]
  N. x* w) b, F( g4 J' i# r" |5 L[set stopped? true]
) n) k* O2 U* h, a]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成- \: G: C# O, n" ^" B: _
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
% Q- Y, S' y$ c, t6 ?( F6 c则可以顺利的终止go程序
7 H& t/ F6 }& K但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-27 09:11 , Processed in 0.013553 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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