设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5808|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
, D6 x* j" t# k* u& p6 `to go
9 H! ^3 @5 O% ~( P8 @# J% ^if not any? turtles with [not stopped? ] [ stop ]  ; \7 p4 K+ [- q; @' g# |; z
ask turtles with [remainder who 5 = 0] [4 i' p( t* I7 P5 P1 U
set close-mates  (turtles with [self != myself])with[
( c+ p! F; G' L(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
2 ]! O2 Q/ M. t- _+ L* i2 @and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) ( M* ]# s& O$ T" @
and remainder who 5 = 0
7 U( b8 d3 e% b& t]                   ! d% \. W% o. {4 `% `
ifelse any? close-mates
* a( @$ t7 G5 P6 _6 R[                                                               
2 G8 J2 s; I' Aset closest-one min-one-of (close-mates with[self != myself] )[distance myself], |2 a4 E/ a, f
face closest-one- s. ^& Y, g2 X) @+ r
rt 180
& |' w6 D9 _+ [$ c- x: Tfd random-float step-size
: F" K5 [& c# \5 qavoid-walls
$ e' N2 S8 h* y" W4 cset stopped? false]9 P/ j" _. ^8 c: m: A9 ^$ j
[set stopped? true] ; P6 L) n. k9 m
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成3 z9 A* M4 Y/ W/ \  [3 L
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]. u+ D' o) U7 z" R* _
则可以顺利的终止go程序8 ]# c' W* |6 U( D
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-30 13:26 , Processed in 0.014405 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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