设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6344|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
9 Q- H% R1 y+ K5 P4 }: sto go
" z: \1 [' k. b9 k7 oif not any? turtles with [not stopped? ] [ stop ]  
; \7 j4 _2 Z, _  q' p& i0 xask turtles with [remainder who 5 = 0] [3 a8 o0 g+ ?* f% h6 p0 s
set close-mates  (turtles with [self != myself])with[
. T, s# g3 |# d. }; U* w6 O6 g8 O(abs(xcor -(xcor-of myself)) < X-Dist + Wid ) ; Q2 o7 F, X* K4 {
and (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) ; \, \/ |* Q* z! |3 U9 h
and remainder who 5 = 0 , ~6 X3 U( \! u1 z& K9 o8 v
]                   % I- r  R; i: {% t
ifelse any? close-mates 9 s0 F. H) ]" P; y4 m# H
[                                                                # V8 _' m4 C+ m  T0 d8 K% u
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
! q5 J' F( K8 p& Fface closest-one
8 ?2 G( e) P5 h" }rt 180! t2 }1 i- f) n4 Q& K$ @
fd random-float step-size: f4 h. n. J" p5 D! d
avoid-walls/ c5 |4 W5 L0 y! U
set stopped? false]( h- v4 v, u) @: F
[set stopped? true]
1 X/ |7 ?  d: l. u: E, b7 D]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成8 s- q# C/ z; G1 q
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]9 w( l4 H: G1 J8 e! e7 P$ j3 Y" W
则可以顺利的终止go程序, @  W; l# v% l# u3 \
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-20 13:18 , Processed in 0.015278 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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