|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
8 c- D7 X) s. j, }1 X(byref x1,y1,z1 : integer; part : object) : boolean# z2 F* c# M6 N0 d4 E- y
is
( s7 Z; ], X& N } i,j,k,w : integer;
: D. ^- t* X; K0 O( s: L" Jdo: w8 z4 W+ D( e# t/ b' @( N
for k := 1 to Crane.getStoreZDim loop) i$ H1 A1 H' n8 \ c8 n, g% H
for i := Crane.getStoreXDim downto 1 loop: \5 g+ Y/ ~2 Q) I4 b- s# e5 ]. J
for j := 1 to Crane.getStoreYDim loop! g& d$ J6 z1 r, U. k$ S1 h$ T
if Crane.placeIsFree(i,j,k) then A$ H+ p9 n1 E6 O
x1 := i;" ]/ Z/ I- s& {1 C
y1 := j;) [/ e5 F; K1 x; b0 C
z1 := k;* B+ q K; t# I5 u4 l* }
if Crane.placeIsFree(14,1,2) then% E m1 m! v+ L3 @! A: A$ x+ @
w:=1% m l) ^0 f1 v& i' i( h( ]" y
end;
3 B) r) T& e( P6 `% |: f. A+ R return true;3 L B3 O, d6 a2 |1 e" f: Z$ f0 l
end;
4 u7 g* b, K' D# d. u4 A3 { next;
" m- }1 o" `, ~5 F next;" v9 t' V' b( D {! W; C
next;
`! D, u4 U' |0 D5 M return false;! V% u: n( s! k! y" G
end;# c& [5 M& T4 ~6 Z1 f9 C* s5 P, m
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?# g2 p- g: ?+ R! g
|
|