设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5624|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false" o% G4 }% p, ]) s1 M4 \& u
to go
, {7 y3 M6 B9 z) l  qif not any? turtles with [not stopped? ] [ stop ]  
# F4 r, ?# W: I: E: z6 wask turtles with [remainder who 5 = 0] [
; @' Q  A: q# v6 y3 w8 Eset close-mates  (turtles with [self != myself])with[
( A6 c& F9 K4 V3 ^7 R" o(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
' x: w' J, a% U, u  Xand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) / |, L* Y/ ~0 \! e) y
and remainder who 5 = 0 * q1 W+ z+ f" e! t9 v
]                   6 n6 ?2 `4 R) y7 y, Q; h
ifelse any? close-mates
% A& i$ e4 Y$ y4 R[                                                               
9 ~- N2 C& t  \set closest-one min-one-of (close-mates with[self != myself] )[distance myself]- R+ s1 k. J6 o/ ~. t
face closest-one
  q# a8 @* f4 [0 c' Rrt 180
+ b" J! T0 g3 l: }0 Ofd random-float step-size% w$ p+ R8 e( K" X) C2 ^9 q
avoid-walls
! q0 U/ P( q( o' c) Sset stopped? false]
+ n7 \. `4 [0 L) g1 ~! F) A( V, i; f[set stopped? true] ) k+ C& B9 a. w- [' Q
]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成9 K$ I% T+ _4 k0 ?3 ]; |( n: q! w
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
8 \/ L) I4 T; t. ~% [  M则可以顺利的终止go程序
: B" C5 {7 A' `$ m% M, z$ U' v但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-18 16:58 , Processed in 0.014806 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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