|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
5 ^4 A$ n0 a6 m(byref x1,y1,z1 : integer; part : object) : boolean
9 H# U+ @0 S7 `3 w% x% ois1 [' v. p: M7 k7 Q- N
i,j,k,w : integer;5 p3 r1 ]1 t' \- R# O+ E5 F
do) U/ G/ {% E4 n: P( w& D
for k := 1 to Crane.getStoreZDim loop
* C! h- l% n- H m" N7 o for i := Crane.getStoreXDim downto 1 loop$ `( l7 G" i9 G* f
for j := 1 to Crane.getStoreYDim loop4 u1 d1 G" i0 y* l( x$ M+ J9 U. a
if Crane.placeIsFree(i,j,k) then u6 T. K* {) K0 E
x1 := i;. H* s+ o0 |' X; a% _! S- ]& {
y1 := j;
) `+ _. I" r d; D z1 := k;
" Q' J9 b, I' U( X$ m' [9 _% m if Crane.placeIsFree(14,1,2) then
0 Q' y% z6 h& y5 |( k w:=1
8 v$ |$ q/ B5 g# ~ end;( U" ]* J& f! @+ o
return true;1 y+ I9 ~$ @8 m8 z; c. m
end;+ h. }& ?9 r: M# ?* e
next;/ D1 ~3 h0 F! I# m- @, b" c# w
next;
7 @# J% E+ Z( [! F' U next;
. C: ~ H9 K0 G8 Y1 u1 A" R1 t; D8 F9 ] return false;
5 k: K2 N8 R6 _* l" [& S& D \end;( S/ J! T7 }1 I. h
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?( |3 h6 e* c# T2 Q5 j
|
|