|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:6 O9 B! |3 | g, N7 @
(byref x1,y1,z1 : integer; part : object) : boolean
$ j2 E' U4 P$ ]2 Fis; u. H( e5 K4 V
i,j,k,w : integer;3 Y7 F* f- w/ R3 W$ i* b
do
9 \: F5 Z% D; u$ P for k := 1 to Crane.getStoreZDim loop
2 M3 t: F& y$ G4 T for i := Crane.getStoreXDim downto 1 loop' E" M$ E2 a' W! r9 H
for j := 1 to Crane.getStoreYDim loop
% j6 ?/ ~: t/ f6 D if Crane.placeIsFree(i,j,k) then
* c5 A' v1 B( k5 N- j% `. G4 z x1 := i;0 d$ D$ k* L% y# ?( b! N- b
y1 := j;
: ^7 I- ~7 ]1 W' g( m) w/ ] z1 := k;
. h/ n: {5 a( [ if Crane.placeIsFree(14,1,2) then+ ]6 ^+ F/ V' l7 C
w:=1! X6 T& D3 l7 m+ E5 L
end;$ V! G- A2 a7 Y1 ]; N5 ] |, M: ?% p1 j/ T
return true;
, R$ k% K$ T3 h" P6 u end;
* K6 u1 B j7 p5 r J next;
2 b, R9 A/ z H2 ]! m next;
% ~& y6 O2 ]3 U W5 m5 A$ R7 d# v next;% M& F, ~" k9 r/ Z6 P; R3 [
return false;2 ^" S" Q, c1 I! x5 K
end;
1 [' _$ P0 i9 d8 N: z7 | 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
3 V+ ^0 N- q! a* A9 y |
|