设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6465|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false! `! @# h% [6 s7 I3 Z. ?( r3 G; m
to go* L( }  W" U% d
if not any? turtles with [not stopped? ] [ stop ]  ; c4 ]4 T& V: a* U$ p) C
ask turtles with [remainder who 5 = 0] [
" m* u& Y0 Z& g7 J! O" S/ e- X/ s- _" lset close-mates  (turtles with [self != myself])with[
: j  C5 D% Y0 D8 m(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
! }: C2 R4 f: e( N8 {" P  N% Tand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 6 E; M, S: J3 j; H1 j
and remainder who 5 = 0
% [. K  B) n  A( W9 m! j: e]                   7 }5 d* X% }% V) |
ifelse any? close-mates 2 y5 x& K6 V0 E% B
[                                                               
; O0 e# X& J5 h  B4 y) o8 Cset closest-one min-one-of (close-mates with[self != myself] )[distance myself]5 v5 x  S4 Z8 R
face closest-one( O) F  x6 g3 P0 J4 D/ T5 p6 a1 K3 h
rt 1809 k5 H! A$ R: r4 c. l5 F- ^$ A
fd random-float step-size
6 B, g9 J# D+ B& p1 g8 \avoid-walls0 q$ q; r/ S4 `5 d$ w1 n9 ~
set stopped? false]+ j# L: U% N0 m8 Y+ a3 d0 ^
[set stopped? true]
3 V' }6 d: O; x! s]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成
( B& }. i9 y* D3 `) E* d$ Mif not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]8 J3 ^# r' R* D/ [! }3 i! X
则可以顺利的终止go程序
3 @4 c6 S3 ]( t8 y* O. P  m9 X但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-3 09:49 , Processed in 0.021835 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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