|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
, R0 I1 l3 V( G- [7 Z: p4 t; h(byref x1,y1,z1 : integer; part : object) : boolean
* L# s8 ^) f! ]) F. ~is; N1 M1 p* c1 v$ C2 A
i,j,k,w : integer;" N) E* z/ |% [) Y! u3 z+ v% A& f. l: w
do
, D' n& C: a3 I' [9 y for k := 1 to Crane.getStoreZDim loop
% F. E) Q0 {& }# ~3 K8 P# x for i := Crane.getStoreXDim downto 1 loop
0 U1 e. ?, t5 f) v for j := 1 to Crane.getStoreYDim loop) i2 b+ l- Y/ `5 W5 D( L: m7 D0 O* ^
if Crane.placeIsFree(i,j,k) then) w& H1 |8 i* |% j: y8 V5 m
x1 := i;
8 |8 }0 D$ ]+ l y1 := j;
2 h% M0 S9 k. E* N$ N z1 := k;
0 m2 ^3 F( p& [0 Y9 ?# P" Y+ z" q if Crane.placeIsFree(14,1,2) then( [% J' c3 {9 r
w:=1
& D8 {& Z1 `* Y: t* s! u end;5 J: V" V, G6 P3 G
return true;- b; K3 f+ `* [0 A, ]
end;
9 p0 v! K% b0 j- J; q: U next;
) V2 w* k% d! d$ h# u next;2 Z4 J8 l/ E$ F$ _+ ?1 f! J6 q6 d
next;
. u0 V/ H2 g. h& F return false;
' S6 A4 J7 e& B5 M7 `; o# qend; D) x9 e3 r. l1 E z
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?! @8 h7 N( _8 l$ k. |
|
|