|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:2 C* w' s9 h5 b
(byref x1,y1,z1 : integer; part : object) : boolean
: b9 g4 F4 I0 }is
2 G0 m4 ]7 ]9 w1 X i,j,k,w : integer;# S( G; [5 C, k- W/ o4 M
do8 M' j4 }0 I# ^6 x. e$ v
for k := 1 to Crane.getStoreZDim loop- p3 h9 H @+ H1 A4 k
for i := Crane.getStoreXDim downto 1 loop
' S( b/ z# `6 O7 c& z+ i3 m5 E' t for j := 1 to Crane.getStoreYDim loop* |' Y- i3 W4 p6 @# Q; G
if Crane.placeIsFree(i,j,k) then5 R8 X5 H% `/ O
x1 := i;$ n% H! S* f: {# o. L* i
y1 := j;
$ ]* L/ _0 m9 Q: o( m z1 := k;& U8 g+ {- `2 L9 r: Z
if Crane.placeIsFree(14,1,2) then
* ]7 [- [. d( I I5 z% ? w:=1$ o# Z& p. B. ~/ H6 z# z
end;
B1 E0 U6 ]9 u5 T( X3 x return true;# P% V/ m x, e. |6 J- u
end;
& u8 U4 U8 T1 l$ j- L7 D& U9 r0 c next;
% _, P; z9 V' X& T3 ^0 y next;6 q/ \; N; c1 V
next;
) X. [2 Q; r% P' \, `1 W return false;
. S4 ?# N+ W4 Y5 b. O' j8 j! l' Nend;
6 W: W" @' i7 B7 B 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
x4 O* @5 g* C- ^8 @( M |
|