|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:7 X3 A, T9 P" l) c; p# e( g
(byref x1,y1,z1 : integer; part : object) : boolean d; v0 ~+ d- R1 r# \# V
is
+ g7 T/ h. L( M" T. z i,j,k,w : integer;
4 f: S5 g1 o5 c) Kdo! O$ Q7 w0 T! K1 N. m0 b
for k := 1 to Crane.getStoreZDim loop
' ~( V, B: O; w$ D: I for i := Crane.getStoreXDim downto 1 loop
3 p+ f; g4 z: {0 G- E( M+ @9 g for j := 1 to Crane.getStoreYDim loop0 w% l( W- w% A/ m# G
if Crane.placeIsFree(i,j,k) then
! [# K8 B0 ` o: B/ F x1 := i;% \( O0 i$ i, z
y1 := j;. a' M B; K2 B7 s8 E, H
z1 := k;1 p# v l; G. @5 F- c" i4 t# Q
if Crane.placeIsFree(14,1,2) then) L$ K! r1 P9 h1 {! ?4 c% [
w:=1- h& \) w& S7 r7 R" j+ ?
end;* R ~4 R% r; u- i4 \, N7 g( ^
return true;
' f) d% f v- C2 R end;& i& k0 U) ~/ Q& N
next;1 [' S" W" X* k0 A; \8 m! }
next;
& x7 o, q0 U" _* j+ e$ n next;: t: o, a; o' z3 _/ H
return false;9 c: Q5 M/ |* K0 v! ~
end;
; m- E+ r0 V9 @( Q 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?+ T0 L% J0 e, J" ^+ B' s
|
|