|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
2 R5 g5 G3 C0 h+ w$ [5 v- v, }6 z(byref x1,y1,z1 : integer; part : object) : boolean
: L; j [! D3 `! i3 fis+ q) O6 ` E; Y6 v7 j, Y G+ v
i,j,k,w : integer;
8 v- Q. C. Y6 }& u/ v' wdo; T9 Y2 x, A! p7 E
for k := 1 to Crane.getStoreZDim loop
[/ a3 {8 M6 X& C3 t for i := Crane.getStoreXDim downto 1 loop
5 u( E+ @/ c6 k3 S5 `" I* x% s for j := 1 to Crane.getStoreYDim loop
/ |8 D8 M" N0 I0 _ P if Crane.placeIsFree(i,j,k) then+ I/ X' j$ z! y% O1 `3 ]) D
x1 := i;/ I- E N' R$ C( j1 K, @& S
y1 := j;
9 U2 G* Y' R5 q' ~' Y: I z1 := k; g2 z7 U( _, w& ^- p& ]
if Crane.placeIsFree(14,1,2) then6 B8 Y# D& i( A
w:=1$ w/ i5 d6 r6 X7 B- t [
end;: t3 q* \$ F$ i2 }
return true;
6 Y7 Y9 u) U2 d% ]$ [: a& } end;. D7 l/ D4 ~" H/ Z! j
next;0 h6 D" w* t, \/ T: ^% e5 e+ F
next;7 _" B x: u1 ?2 s% `8 K
next;
- m8 Q2 b) Q z2 P; m* s2 O; B return false;8 j4 D: E2 I& H: X
end;
) p- r9 H( V. M+ Y7 D& y5 H 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?: u2 K$ R4 F I+ E2 I
|
|