|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
! E9 ?( l. f: \! h# M5 j4 ?(byref x1,y1,z1 : integer; part : object) : boolean
4 S0 S# z* d, x$ k8 _is" d) l: [" k4 u$ b' h
i,j,k,w : integer;2 K3 j5 B7 o" X. L) m0 o
do4 B1 k4 I: e. a3 y5 l& f
for k := 1 to Crane.getStoreZDim loop" q G9 X5 E4 L) s% K+ W" N
for i := Crane.getStoreXDim downto 1 loop
& C1 j5 E; @% ] ~* q2 u for j := 1 to Crane.getStoreYDim loop
, Q( G: ~9 N2 F2 ^5 L1 d% u if Crane.placeIsFree(i,j,k) then4 n q9 B L J5 s# l4 w* G( k
x1 := i;9 t8 Q0 G6 a( @/ M1 e9 \
y1 := j;; Y" b2 P- e$ E- n9 a; I0 Z+ q# ^* O
z1 := k;
G' m! |( ?, i) Q if Crane.placeIsFree(14,1,2) then) R, p9 I3 I$ F
w:=1# B: H1 @4 e, G; C! H8 t
end;
% z! Z5 K4 E1 D: f1 f4 M return true;) E2 r G0 E5 `/ M7 D
end;
+ y% u9 x! X" ` next;
1 w9 d6 C& e4 y next;
( a: [( G: _6 v0 _( e next;8 ?7 n2 p3 ~. ^
return false; o7 C7 H8 }+ e/ }. ?( C+ S! J% {* L
end;6 V- V7 E, _) x- o. l" o) _, k
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
6 u* j+ H( w. u% `5 M0 S, N |
|