设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5827|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
6 Q  E9 v5 H- ^# {6 Vto go, ~; u" k7 b/ J3 B# v0 ]
if not any? turtles with [not stopped? ] [ stop ]  
& N; k  O0 v6 q! M! vask turtles with [remainder who 5 = 0] [$ x! _& F$ [* {4 n3 ~' ?
set close-mates  (turtles with [self != myself])with[6 s# ?0 `8 o$ R$ g5 P
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
( d  P! R* R) Zand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep )
5 l4 o% ~) X6 C  v0 Y+ _and remainder who 5 = 0
8 [$ W9 D% M8 r* A; O% R4 X]                  
, p/ j# l% m& M3 t$ Wifelse any? close-mates
" D9 ~6 n) s, b7 h; `& S) p[                                                                * _  r2 s. c" p, B8 G; N
set closest-one min-one-of (close-mates with[self != myself] )[distance myself]
  z/ ]" E+ _" T/ d2 Oface closest-one) k% \7 {4 H* g4 h  G
rt 180
4 z7 {. l, l2 X& C) W+ yfd random-float step-size. h' M% @3 C& V9 P/ g5 q. z
avoid-walls
0 x7 p. J. o7 @+ l2 E6 h) Uset stopped? false]
7 U3 J' x! ~7 }6 p" j+ j  {( j* s[set stopped? true]
' c6 E1 E0 I/ J8 l! [' []
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成" `4 @+ \. H6 }% s- X* v( J( l# o/ Y
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]" i6 s! N; u, p  W
则可以顺利的终止go程序
3 }4 g3 B% O2 s0 z# w( i2 x但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-3 08:12 , Processed in 0.016263 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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