|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:1 X( w+ z2 c% y( V( c- E
(byref x1,y1,z1 : integer; part : object) : boolean" @* _$ |( T0 @: ?, A1 D
is
+ P% i' }7 M2 |: p. S) n2 `4 r+ u i,j,k,w : integer;
+ W- X0 p' o. ? E) l) S5 gdo1 R: F6 Z, n8 n2 r$ ?
for k := 1 to Crane.getStoreZDim loop
- }8 d$ D; R* a7 G" I+ r for i := Crane.getStoreXDim downto 1 loop5 D1 A7 N) [5 k2 p: W+ A4 T
for j := 1 to Crane.getStoreYDim loop" a* y8 g8 D% r3 U/ M+ g
if Crane.placeIsFree(i,j,k) then
2 b5 q1 L- O) a2 [1 k x1 := i;# t* y4 L2 _/ @8 G: h5 ~
y1 := j;* P, x3 W }" D* Z( Z9 o0 c. }
z1 := k;
; V6 @) a9 w3 e, n8 G6 @! x- R if Crane.placeIsFree(14,1,2) then
" r" v: r( g4 x7 ^* I w:=1
7 u% t$ T" r/ @3 h4 _ end;6 v' p, C J( U7 Y( Q
return true;
2 j' I9 b9 p3 x! L end;( w5 x1 k/ p( e0 I
next; d3 X) F Z( k7 G
next;
# P* a& ~7 g& C4 b" d* s3 c B0 I next;# m5 j" r4 q/ | c
return false;" m: h, o3 Z2 M2 x1 _% O3 c
end;
5 U& w* g! J9 p" C% ^ 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
6 J5 x& W/ d7 Q) b. g Y; Z |
|