|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
- ]8 s: O" Z% Z0 o; a- D1 Y(byref x1,y1,z1 : integer; part : object) : boolean
1 u1 _0 |0 ?/ Y. J8 }% kis6 |- j7 k" s: _. M* ]& I) M1 W) J2 j
i,j,k,w : integer;
+ b7 o9 J" d& X) \9 M9 _1 X8 \! W7 \do' P) u/ S' K3 M1 o0 @+ I/ Q3 V
for k := 1 to Crane.getStoreZDim loop$ `2 P: J2 [9 X
for i := Crane.getStoreXDim downto 1 loop
- ~5 k9 H. X3 Z! @$ o# [ for j := 1 to Crane.getStoreYDim loop
$ G7 }/ J& F! o8 k" { if Crane.placeIsFree(i,j,k) then" p' J+ z" ~( q C9 P
x1 := i;: l5 _+ ^6 c! [. h2 X" S: D# l2 Z
y1 := j;
# _& Z7 t2 q* d9 _ g3 u; p z1 := k;3 e" T: l, \$ N! f" O
if Crane.placeIsFree(14,1,2) then
- j4 r N ~' R& j w:=1
5 j! g9 T' ^# o% a, B6 Q( S2 D. ^ end; W( _" v! W/ [1 [
return true;$ k/ c" i) k5 U" P
end;
- T/ ]2 D- p. C* O( a6 I next;
8 `2 |. W& @2 s next;/ v! E! V! \% @: C" f0 D
next; ~/ p1 T: l) h, P2 t2 e
return false;
" b9 A0 n5 q$ u2 b. h. }end;5 e. u2 E" h, m" D1 _1 k
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?2 t( n3 c8 a& s& W
|
|