|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:2 X" k+ a! [6 X+ o2 s
(byref x1,y1,z1 : integer; part : object) : boolean. ^$ U" R7 K) E* k) X: B6 t
is' C1 @& A- O! Y8 j7 L6 ]
i,j,k,w : integer;9 C- e, K6 I9 R1 ]! f* z& `; L/ P
do
: s S- [+ F+ w0 h2 } for k := 1 to Crane.getStoreZDim loop
% ~4 a+ k% F/ H; x' N for i := Crane.getStoreXDim downto 1 loop
# E' f0 Q$ {* g6 ]6 j& } for j := 1 to Crane.getStoreYDim loop
# \& e6 q8 n3 V/ b, @ if Crane.placeIsFree(i,j,k) then
# _ w* P! A. X/ e9 e! s6 \ x1 := i;
, b& h( a) ?9 o: k0 M y1 := j;5 w. j" m2 Y: L( v7 Y7 C. k
z1 := k;# Z4 _# I x( [
if Crane.placeIsFree(14,1,2) then1 H. }9 d( W' f; A L$ c; V& y/ `( j9 @, R& l
w:=1
, y+ H3 \( v3 `& a end;
9 @- x( Q6 N- D& e! k6 c return true;
' g4 m& W" Q/ u2 r end;% O* z: P- i L8 @ K* }3 |
next;
- I$ r2 l+ h4 c" h; b$ X+ J3 i next;, x8 U8 J: v& ^- A
next;" W4 x% | t( u6 `* U
return false;% ?% I; O: ?4 }! A
end;% _- a1 ~8 p9 V
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?6 @: h t# V. a% N/ t6 Q7 b
|
|