|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:8 Z5 q1 {5 e2 @9 S- A
(byref x1,y1,z1 : integer; part : object) : boolean
- @* O) r* V, @/ z6 O: Kis
. C9 x' `) q" ^- y i,j,k,w : integer;
6 Z3 z0 _- k; P/ I0 }4 gdo9 Q" a: w2 F$ U
for k := 1 to Crane.getStoreZDim loop; l; C. ]3 `; P L0 P8 K
for i := Crane.getStoreXDim downto 1 loop
- v6 t3 o0 A& h! P8 p0 u for j := 1 to Crane.getStoreYDim loop% c1 J: K: I8 e0 ~
if Crane.placeIsFree(i,j,k) then
7 w0 V2 Z Y1 T& @. O* u x1 := i;
: i2 R8 {+ m; ]. d' f x y1 := j;2 R0 x% `) }, ^/ L9 G
z1 := k;
" P1 J v1 V5 F3 W4 W if Crane.placeIsFree(14,1,2) then
7 Z s, |; w3 B& F w:=13 J% I! T* L/ j! K) B# u
end;
- y3 _9 g2 F( `- R V. m return true;5 ^4 A" U8 g+ P5 h
end;
( q( p) B9 j% ?6 t6 T6 t1 [ next;
- d' }0 z% x7 X1 S' ~% \ next;3 U' T& L3 Q* X1 _" R& r
next;
) V3 |5 a* U. R7 J$ y* q2 H# ^9 F return false;
1 d' M: r# v' j" r; Gend;
( Z; j" `3 ] j2 i" T$ e3 T6 D 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
- V% K; y# s! \1 Z' C |
|