|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为: r2 y' ?. H2 c! L2 Q A* G
(byref x1,y1,z1 : integer; part : object) : boolean& o/ {" T6 _5 T; r& Q N7 q
is* _" v9 e8 n- e& ~& q( _% B1 e. S
i,j,k,w : integer;3 j: E. f* C+ k9 V" f( q% o
do
5 ^7 ?, Y- n2 ]5 `+ Y for k := 1 to Crane.getStoreZDim loop" n: D+ i+ j, |( w% w4 c8 S+ Q
for i := Crane.getStoreXDim downto 1 loop
1 d# s- m6 F! e9 [ for j := 1 to Crane.getStoreYDim loop; ~& N7 O" K6 G& Z8 ~: a5 Q0 f
if Crane.placeIsFree(i,j,k) then6 d* U- \% H& {
x1 := i;: j9 U: X/ F. z/ g8 H( k7 X' _5 o
y1 := j;
' p* ?! a0 |) q, N z1 := k;
" F- y( h, o* ?2 i if Crane.placeIsFree(14,1,2) then
5 C4 A3 p+ ]7 p( k w:=1
7 i4 h$ F- ?4 n& G* S) S end;( J& E$ L/ S- H1 E- _; `* l& Y
return true;; F, t* U0 f/ b8 j
end;' h6 d5 O; r2 i. k6 [! ]
next;% K% x6 O' M' b* c6 _ E `
next;
! V, _8 X, s" O( W7 T& \8 t next;( l( U. ~% w5 ?% z% ~) C4 u- M0 h
return false;
9 Q0 ^" R% H2 dend;! [1 C. b- ^8 q- B9 v9 Q$ u) t- p$ p
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?1 f# N( T% k# @# v" H
|
|