|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
5 J$ d3 g$ v! h, g: @+ I(byref x1,y1,z1 : integer; part : object) : boolean
- c f3 A S T& S$ Lis
1 F4 H% W/ W' O$ z i,j,k,w : integer;
% ^& w8 }" T( p1 Fdo I/ g) G4 _ R) H1 w# |
for k := 1 to Crane.getStoreZDim loop% a' q. ~6 s/ ], P! M, p
for i := Crane.getStoreXDim downto 1 loop
) c% X/ X+ K$ o for j := 1 to Crane.getStoreYDim loop/ D- s0 y& @$ h6 v! D
if Crane.placeIsFree(i,j,k) then8 Q, S) }2 s# E P, T5 Z F
x1 := i;" P! r1 j) ~: A" O+ t5 L
y1 := j;
1 q: D! y. \ b6 g% A z1 := k;
, O5 u0 H- D G$ d, R# j% X if Crane.placeIsFree(14,1,2) then
) c Q ^, a' T! V& a w:=1* ]2 ]6 E7 c7 Y2 e0 n
end;0 ~: P9 V! M5 _. E
return true;- S0 N+ x S$ a. s. z4 e
end;
* ^2 D+ ~" o- u& R+ `5 } next;
& ^' F! i6 s- R next;8 s9 ^8 n3 d( Z
next;/ N5 K. ?: l$ `% K: N4 L7 F& Q
return false;
* B+ m/ s L9 d9 g# Pend;
3 P0 d$ f7 l+ P6 H 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
' z( Y3 O% Y; U+ x3 L9 B! Y& L7 f |
|