|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:2 M5 d9 j% U. R
(byref x1,y1,z1 : integer; part : object) : boolean4 [: }, g. b+ P8 x5 }, S R
is
) V: B+ P E4 T+ I" z1 A0 [- t. R' S i,j,k,w : integer;
& ~1 i5 F' w6 Odo
, z6 Z4 W! f: P2 a& `! @ E& ~ for k := 1 to Crane.getStoreZDim loop
+ `! f/ u) s( @, g! N5 O+ m* c* V for i := Crane.getStoreXDim downto 1 loop3 p V) j) _2 u4 t+ \2 n; {
for j := 1 to Crane.getStoreYDim loop
+ G0 u! L! M3 a( y if Crane.placeIsFree(i,j,k) then
7 ~9 C4 @' m& D x1 := i;( b4 v: r4 f8 Y
y1 := j;
- o* j* p J( } z1 := k;
1 v( D Z1 k' W3 u if Crane.placeIsFree(14,1,2) then4 ^0 w# Y4 K6 b2 z. J; k5 p! x5 Y
w:=11 N5 K" W* ?' l
end;$ J" k: V3 I% ~
return true;. T: J- A9 ~: k( X& r# B
end;$ @ d) o: i! \' l* \5 O2 i
next;
6 q) G) u2 s" Y8 f/ G" ] next;
: e' {' f8 Y. D3 p0 d$ Q next;
' G: U7 z w+ M1 R return false;2 ^% G1 N+ w" k- \7 F2 T+ D S! p, x
end;
. c: S h0 l, v' x 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
. k5 l3 k5 a& j# B2 {: j1 v# ` |
|