设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5870|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
2 a% j# p. X; J' u) T2 Bto go
$ V' u2 O3 Q8 S- qif not any? turtles with [not stopped? ] [ stop ]  
. _# @, u. h! {% @9 r" T3 C7 }ask turtles with [remainder who 5 = 0] [
* }# [* V; E" U# rset close-mates  (turtles with [self != myself])with[
) ~6 X! f, b+ e! O) c; F: |(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) " \  Y( n8 f! F
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
" t8 b* L* Q4 J6 @and remainder who 5 = 0 5 H1 _) x2 u2 Y* e$ @
]                   6 n% E9 Y) b! l1 [* ~0 |/ z3 L
ifelse any? close-mates
" V9 N& N2 M1 [[                                                                % Y$ T5 x. [( Z6 k1 Q) q( ^: W
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
# E( K! x, f  V0 o( y% Qface closest-one% n4 E! P, a6 T& [, d( }
rt 180; S+ o' `* H+ h
fd random-float step-size
. t% b7 r; R' m* [% Z) Qavoid-walls
0 R; H. G; {( F9 V. U" [6 Y5 kset stopped? false]( [- L" E2 a: ?$ L4 {7 g/ e5 G" x
[set stopped? true] 8 ]9 u1 o; b2 p% J! _" ]
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
5 Y3 T2 K5 u* u( X4 m! J, Gif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]4 {& {9 J& k( m
则可以顺利的终止go程序
; y  P# n7 A$ Z- G+ r但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-11 11:08 , Processed in 0.022096 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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