|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
) t& C. t# \6 W* Y8 n8 ~(byref x1,y1,z1 : integer; part : object) : boolean- @& L! K8 B" e0 M2 @1 I/ E
is4 Z8 E, v$ d6 g" f3 o9 Y
i,j,k,w : integer;
! M2 E5 z( `6 ldo
$ I4 ]+ E( Q9 R for k := 1 to Crane.getStoreZDim loop/ a) v4 }; a4 D$ O& ?. a
for i := Crane.getStoreXDim downto 1 loop
7 `# L6 t4 t- C \ for j := 1 to Crane.getStoreYDim loop
) Z( T" ^) O$ H7 P if Crane.placeIsFree(i,j,k) then
) x( k- J# P, J+ ^, a x1 := i;
) `" M4 t% \+ g2 A( J' V" I& T y1 := j;
. H# ^, z& j9 O) J2 U. U; H z1 := k;
6 y) T7 D6 O1 x( _* T$ l if Crane.placeIsFree(14,1,2) then
K+ @; U k( f) ~1 M8 }( D* m5 X/ E w:=1
+ u8 @: R4 B3 E5 g end;" J4 x* Y0 Q' a% Y! N7 m) P
return true;
+ P; M" |" U' n end;4 ?, g- d; O6 Q! D
next;
! x0 x+ l( j3 W2 i3 r2 { next;! T8 N+ D# _* x* x& A6 a6 f
next;
N$ E5 C+ s3 }8 D return false;
5 ~- V7 S4 N; s ]2 ]end;+ d5 o) @) e. H8 j3 f) o
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?; n; o, s& D5 i2 K/ ^; L5 t
|
|