|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:2 k: g2 k; a; ~4 N) J( e% W, Z
(byref x1,y1,z1 : integer; part : object) : boolean8 b6 L6 P+ \+ I9 t( T7 ^
is+ o, I. D$ x0 k; I1 m) [7 h
i,j,k,w : integer;7 c8 n8 C3 ?* _8 H; a
do" i0 j+ ]8 w& j5 Q9 `
for k := 1 to Crane.getStoreZDim loop
0 Z4 \6 ?4 @+ [% k( c2 _( R$ \ for i := Crane.getStoreXDim downto 1 loop! i) z- e( B, D
for j := 1 to Crane.getStoreYDim loop* E r' ]7 k! ~& C0 A. O2 L
if Crane.placeIsFree(i,j,k) then% [* J, i% C: x1 d( V7 Q% l
x1 := i;8 a6 O. v; [, L+ o6 A7 h0 r' Y
y1 := j;
+ N# n* @! s+ a z1 := k;. e. U- ?+ L$ J. q6 j6 x1 k
if Crane.placeIsFree(14,1,2) then& x) r$ ]; h9 J3 H& b9 _8 L0 `
w:=14 O* {- }3 `6 ~* R: r; p/ _9 i
end;3 I& ]8 L& R& ?6 b3 t
return true;
p( D( w: ?# @; Z3 v end;
% o5 X/ m u* \2 p, J* [8 n next;
8 h% q$ V' r8 j next;, A, e& H6 e8 V9 y3 Z" c/ g# q; h
next;8 O: V( `) x; v; K# l- n9 D
return false;+ p# C7 F* m/ B) I6 M
end;
2 ~" v7 Q- Z7 O 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?" ~( O; c5 u* M" W: p
|
|