设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6121|回复: 2

[交流] 代码逻辑问题

[复制链接]
发表于 2008-4-12 15:04:09 | 显示全部楼层 |阅读模式
在这段代码中我设定了一个stopped?变量,初始状态设为false 。运行过程不能输出stopped?为true 。始终为false
( R$ b3 ]3 n* K- s; @' Q- [7 bto go2 U0 J8 _. {0 r4 O
if not any? turtles with [not stopped? ] [ stop ]  
2 Q8 o: _( \9 t# Dask turtles with [remainder who 5 = 0] [; B2 L0 |, o9 K+ C
set close-mates  (turtles with [self != myself])with[* E  S6 a, G4 {" b
(abs(xcor -(xcor-of myself)) < X-Dist + Wid )
  ?7 h7 J4 [, m# V) U8 Vand (abs(ycor -(ycor-of myself)) < Y-Dist + Dep ) 9 u& X7 Z" w# E7 k
and remainder who 5 = 0 2 H; J* Q8 ^( I3 W" Q9 R4 d; p# @
]                  
* R7 U# A$ O. p& L; P. |5 V8 s8 U$ ^2 X& Nifelse any? close-mates
3 P& W9 i) Z' m! C9 p: z+ y8 q[                                                               
5 W! W3 B* H; C! }/ X5 i: A- V- l( uset closest-one min-one-of (close-mates with[self != myself] )[distance myself]. C4 M* X6 j6 Y3 i$ V) u
face closest-one& P# b) K; o0 U# `/ A7 m
rt 180
/ H+ ]2 p5 k6 w9 }; \( `5 `4 K$ qfd random-float step-size3 Y; P9 E& p" l2 R8 M8 y# ]2 ?
avoid-walls
" X$ z' f( z3 q- Fset stopped? false]
  @0 d1 y: ?; a: u[set stopped? true]
  ]' A% i# ]; [9 R" G4 V* o]
 楼主| 发表于 2008-4-12 15:05:12 | 显示全部楼层
是逻辑有问题吗?
 楼主| 发表于 2008-5-2 17:02:02 | 显示全部楼层
上述问题,如果最先的if语句改成( {7 i7 A! x( @1 R% m) z
if not many? turtles with [remainder who 5 = 0] with [ not stopped?][ stop]
* F; V& r& J/ m( L4 ?+ W7 d  [则可以顺利的终止go程序0 Z  X% Z) `7 s& l' g; ]% C6 f  Z
但是从我的程序逻辑上,编号非5的整数倍的turtle分别与最近的一个五的整数倍turtle tie在一起,5的倍数turtle为根turtle,所以没有turtle运动和没有5的整数倍turtle运动是等价的,if语句两者逻辑没有实质区别,但为什么执行起来会有区别呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-9 19:11 , Processed in 0.016015 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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