|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:( l4 e4 I' O" I% {: f2 @
(byref x1,y1,z1 : integer; part : object) : boolean) c+ t7 g$ _( y
is
0 K! u& _- ~2 A1 ^2 t. \ k i,j,k,w : integer;
T a, ~/ a7 R6 x! hdo
1 L$ {7 D6 w7 y5 d for k := 1 to Crane.getStoreZDim loop
' ?4 {2 h; ]9 t! o, a, i$ p for i := Crane.getStoreXDim downto 1 loop9 S0 e6 _/ k; O; X6 z6 s
for j := 1 to Crane.getStoreYDim loop6 w$ @6 ]( s, g$ N. b/ I% a4 @
if Crane.placeIsFree(i,j,k) then
/ g. H) ^0 f3 @0 z0 ` x1 := i;
+ O: z- Z6 t1 b! T, H y1 := j;
% l7 B# S7 o$ {% n# E; H z1 := k;3 c' ^# B6 Q( Q2 k% k/ M
if Crane.placeIsFree(14,1,2) then
. R8 K$ ^8 X v w:=1
, j( f1 ]+ w7 W8 [; u/ D( A, m end;
5 N+ \& {$ _' C, `. _7 X return true;) f# S6 ?- }' d- U2 w0 C0 d/ v8 _2 M
end;
- a8 s8 y3 E/ a( Z [& a; i5 t! K next;
. m' m) z- s+ J. d) ` next;
3 G' m# P2 [9 b! n' p next;% _$ R1 W% U9 Q! J
return false;" s! K* j G- |
end;
9 o% c9 h9 u" c1 L! W 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
3 d+ r3 C4 r( p" y3 Z. u |
|