|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:2 n. \3 p9 p) f8 h
(byref x1,y1,z1 : integer; part : object) : boolean
2 e! q' f, ?3 l+ h' I& x/ R: Pis- u5 w$ K3 M* d4 {7 ?; j
i,j,k,w : integer;8 V# e- F j* h( I' V7 o3 Q! s
do) ]3 n1 ]3 x) k5 d0 G
for k := 1 to Crane.getStoreZDim loop
9 U+ ~) m; r0 ~; \6 s; S# a9 i for i := Crane.getStoreXDim downto 1 loop
2 a/ c. G. @% {: A+ z* W for j := 1 to Crane.getStoreYDim loop3 l; l' z8 _$ L, }
if Crane.placeIsFree(i,j,k) then9 B& T6 W3 q+ l' n/ [6 V
x1 := i;) R" b2 d F& X4 H
y1 := j;
4 x: s- r3 v- Z" {. d* C ~ z1 := k;
R/ c* R) \9 B% m, y& H( @ if Crane.placeIsFree(14,1,2) then
: U4 {. N1 M# O# O% r* Z9 c w:=1
& j1 \1 o* s) H- z/ y# \ end;* H% q2 h1 _* S( _* A+ Z) k
return true;
) g- _) Y4 y! P b, g% C) {8 E end;
" [+ I# Q0 ]" d next;
' @- K. |: `5 |" a next;
: J4 D- W9 X, p2 I4 I next;
% A2 d4 V9 T1 X0 B w. D i. U' m return false;3 c3 a/ I2 x( p! L) x" ~
end;
6 G! h. Q/ P j6 D* Z" u 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
7 E3 {, P2 m+ Y" ~* _6 }% o |
|