|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:) r. Y" S7 u; p' G
(byref x1,y1,z1 : integer; part : object) : boolean& Q0 |- ]# j g P9 m" R# v
is# q. I- O" d2 ~* z+ c
i,j,k,w : integer;( Z9 p! [3 {0 c- K4 c3 c' _8 i
do, E w6 Q' p7 P2 u
for k := 1 to Crane.getStoreZDim loop5 P# B/ ^7 W$ G5 U% Q
for i := Crane.getStoreXDim downto 1 loop
1 Z3 Q' l, ^# C/ { for j := 1 to Crane.getStoreYDim loop5 Z) e Y1 \9 x* j# y- ?0 W
if Crane.placeIsFree(i,j,k) then
* _) E$ z1 n0 L# E( T+ E# h4 K x1 := i;
3 {: E1 S- u1 ~* n+ f* J5 _" a9 L y1 := j;
+ ]" \& F# u- t) p t. w4 d z1 := k;
4 S. ]5 N/ r; r5 F% x if Crane.placeIsFree(14,1,2) then
# _* C. S+ @7 Q- D# E+ d w:=1; X% g* j _$ `$ a8 a
end;
7 K9 d6 j( T; v( m return true;
3 O; ?- o8 ^+ u- M. {, S( H$ Y end;7 d2 Z1 r9 c' H4 m
next;
' P; d, Q# m$ Z3 X next;
# h( p3 S7 [+ q next;8 |4 I4 o9 J" o+ o7 p
return false;3 P7 M( b% t2 r" _
end;
! W! f. A; g6 {4 ^1 N# A z 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
; U3 g" X% w$ e |
|