|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:: s8 m$ N4 b- s# B( R2 C* T' y3 J
(byref x1,y1,z1 : integer; part : object) : boolean/ \# b& C2 r5 w5 s6 e! ]
is
) j2 w/ |, H& l- q- H5 s6 p i,j,k,w : integer;' [ Q8 t: m/ p: h- ~( j+ z8 b, q
do
) O2 v- X+ o! R7 M, ~0 ]8 y# ] for k := 1 to Crane.getStoreZDim loop
- I* k: q+ f0 J4 D- h1 Z% T for i := Crane.getStoreXDim downto 1 loop
1 p/ s. Z) H+ ]4 p* j, P7 ] for j := 1 to Crane.getStoreYDim loop2 T2 b( l: z2 K- C! z7 m. D
if Crane.placeIsFree(i,j,k) then
! m/ \+ m) V1 J5 X9 W, p; t x1 := i;' P7 R+ w: t5 M) @- f
y1 := j;, |$ j8 O; R; r, h
z1 := k;3 M' t: ?" O$ \- a C2 g0 j
if Crane.placeIsFree(14,1,2) then; j: {$ _$ l0 X8 i1 j6 A. k
w:=17 {" U: v' K% ~0 M$ \# G
end;, n! Q: Z) _9 ?) A0 L1 @, i
return true;3 V' Z9 E ~3 n8 m" X+ E3 A2 ?1 A
end;
- h/ d* D, C0 e* d: y' {1 m next;
" Z' z3 ?! _6 b7 p, m7 n& G6 d1 w! ~ next;
; ]. i- y A5 A next;4 Y6 L, }& {/ W# D, p
return false;
; d* s) ^+ |0 m2 L8 yend;0 F- G3 B4 h) ? X' l5 N
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?; s% L0 ?; @% z' ^9 _, a! S
|
|