|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
: w7 W" \! P3 h1 V( b1 P, u(byref x1,y1,z1 : integer; part : object) : boolean% o z+ S7 z* q, j$ O X
is
% { c5 R. y0 j0 V6 V' J1 c* P* N i,j,k,w : integer;
. G }) ^( u3 A6 [do1 Y ]- \% X7 P, H3 Q* L& V% L
for k := 1 to Crane.getStoreZDim loop
) l7 U# u5 |; M% p& ` for i := Crane.getStoreXDim downto 1 loop
$ Z1 S9 ^$ u7 w% N2 |3 I for j := 1 to Crane.getStoreYDim loop
% v& L/ H, l% s3 d if Crane.placeIsFree(i,j,k) then
5 i0 M" X! A1 J% a% ~ x1 := i;& u! e( a+ L3 T! C) M* D( t
y1 := j;6 B+ W& E q, H3 _
z1 := k;
3 h- ^1 \. e+ Y K2 D" t# V if Crane.placeIsFree(14,1,2) then
J% \& g! i0 p% f1 O! u# n w:=1
5 |: M* l0 p7 r/ P. t5 H+ p end;
) }, x. `$ F) F% p' t4 b9 F return true;7 ]; L m8 x6 N$ M; m$ _. t7 V
end;* u6 e2 |4 ]6 J u2 i
next;
3 z* v# { i% B) U next;
8 g9 o6 M' f7 o. Z$ i2 V. A next;( V; Q& v e: d% d* j
return false;% J' c5 b1 _( @% ~) Z3 Q" g' H
end;' s9 {# p; ]' K1 d1 V1 q* e- C
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
! \. F" D% C; n' Q) z |
|