|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:4 {" Y# {9 w7 p9 @
(byref x1,y1,z1 : integer; part : object) : boolean/ d& O4 R- Y( M2 \6 P& ^
is
1 E& K1 j0 V3 F! _4 R$ W i,j,k,w : integer;
! M3 B8 g$ ^% }* X, N: k+ c9 ndo" v8 T3 _; M( l) i
for k := 1 to Crane.getStoreZDim loop
3 f" O- t. c4 Z for i := Crane.getStoreXDim downto 1 loop
+ J; f' B* d* U" p- }& I. _ for j := 1 to Crane.getStoreYDim loop8 i# ^2 K: e T4 \
if Crane.placeIsFree(i,j,k) then* e7 F$ i+ f% ]9 _
x1 := i; b c, g+ c; @. s' R9 D% I
y1 := j;) H4 N7 ^% J( t! s( |8 h) ]
z1 := k;( z. n: }% r( G/ P" ~, \* S; U) O
if Crane.placeIsFree(14,1,2) then
; q% u7 i4 g% R. a w:=1
& h4 ?9 E. M% r6 E! h; g/ ~ end;
/ G; v0 q4 J7 b% T6 o& M6 J return true;
+ ^. `7 S& r! v/ q0 V2 O' L2 T) B end;
9 Z. U: f @( ~5 Q% ] next;: U+ q% f6 `( _: v1 J( m
next;! f9 m& R* s: {# N+ I
next;5 ?8 v* K- u- a+ @( p! r9 }0 z4 p
return false;
1 u7 L! {3 i: kend;: Y$ B! [" ~4 O' M
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
& _! T' y8 [$ V0 I |
|