|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
5 X: g' l I2 F' X! R(byref x1,y1,z1 : integer; part : object) : boolean
/ a8 g$ R0 s8 ?! o4 R, ?7 D- ]is
4 L" ? R- p W: }. q% [ i,j,k,w : integer;! s- l/ ^' j+ G w0 t5 w
do- I3 `1 W, b, Q1 \; M# p1 [# x5 g3 w
for k := 1 to Crane.getStoreZDim loop
1 Q# V, W4 K6 ~/ K" R3 V for i := Crane.getStoreXDim downto 1 loop' @/ U( E7 H/ \4 m" N
for j := 1 to Crane.getStoreYDim loop
! w- ]6 ?( d+ _! M if Crane.placeIsFree(i,j,k) then
& q* D* y% O6 E# M# z' A p x1 := i;( S) T3 H& H+ n
y1 := j;; \1 k# e, r7 w
z1 := k;
; }3 {" u" Z; S* m4 n6 Y/ p if Crane.placeIsFree(14,1,2) then
; G( o% G, Z. s @8 p w:=1
1 Y; R( N. |, Z; A0 L end;
( [9 T& I* Y( P7 A$ G9 Z return true;
9 q9 U4 { z+ j- g8 p end;3 x. L# K* \: G3 y1 w" o! [2 U
next;+ G' z) g. J; z6 l: D1 d6 w: I5 ~( Z
next;
* I! [; C5 Z, m6 j8 @ next;$ s4 w7 |9 w4 o: P0 k
return false;) o% |# V, `2 a: h# j" e" m- j1 e, Y
end;6 Y' G. q3 n/ c) b m: i& C% [
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?' d. i; J$ j+ Q& Y1 Y. }
|
|