|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:+ Y5 i3 b0 A% Q- B+ n$ F: g
(byref x1,y1,z1 : integer; part : object) : boolean7 C6 ^+ h" Q7 r2 K" j
is+ E- n$ A+ P8 A) h% M5 R ?
i,j,k,w : integer;, Y' r* O% t' n' o
do
U8 q- v; C; G6 M for k := 1 to Crane.getStoreZDim loop
; T$ l' q# r6 Z: l for i := Crane.getStoreXDim downto 1 loop
& A2 o2 O1 R( z" c6 | for j := 1 to Crane.getStoreYDim loop+ Y( x/ b- t9 c( Z. [
if Crane.placeIsFree(i,j,k) then, u( S& {7 |1 n6 o4 _; ^
x1 := i;
# n7 F$ J6 I, _ y1 := j;- ?' Z( K/ O6 ~% q+ k
z1 := k;5 m* n1 _/ e6 r4 c5 ~, m0 T) A% R
if Crane.placeIsFree(14,1,2) then4 K. q* m2 ]. V* V
w:=1
: A0 a9 K. I3 N2 i8 |( z end;# C9 O, o' Z" h% S$ s
return true;
S, w% o5 A8 q6 U end;
: y; U" G: h( |# V! J8 @. O+ C next;
~" s+ j6 u3 n next;
9 Y. |! X# |( Y+ Y8 Y next;8 x0 b& s: c c( E* [# R
return false;: ~1 Q; F# j; ?) F2 k w
end;
& [" }( B. F: i- M- ^ 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?$ ^, I5 p }0 Z& b" g& |4 Y
|
|