|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:/ E4 ?; B: y; v; ^
(byref x1,y1,z1 : integer; part : object) : boolean
3 O V8 w! y- P( ~. }is, g7 f$ \- L' x+ a$ Z) X- g1 S3 F
i,j,k,w : integer;1 M6 N" m! D- m* B( I# M1 \/ Z6 k7 w
do
+ b2 k/ T+ X4 N2 Y" N for k := 1 to Crane.getStoreZDim loop
! R( z& i; ^! F/ ]8 H) [ W0 [0 ] for i := Crane.getStoreXDim downto 1 loop
+ c6 y# B+ B6 s for j := 1 to Crane.getStoreYDim loop
1 ]% E/ R) M3 |% W( p3 [. \ if Crane.placeIsFree(i,j,k) then5 H0 c& B/ m. N* k8 a2 G* G) [
x1 := i;
3 J* a5 O9 V$ W y1 := j;; w0 o" I- m! Q8 C
z1 := k;
1 e" [% V& k# q7 Q if Crane.placeIsFree(14,1,2) then
, [6 \! r3 ?1 D/ ^+ u' O w:=1
9 ~* S4 {, e& S2 C4 C5 p end;7 K6 ~- w+ _# z5 G
return true;3 Y( Y2 T) E% s1 n
end;
2 C" X$ S$ f% X/ M6 l4 m next;) W* w3 ~- F! W
next;7 A. A( ^4 v& Q% \
next;
9 G7 u0 E* Q/ e! E. O# I7 r return false;
! C. V2 ]/ U/ c9 |6 a4 vend;" _ F9 r7 P* V7 O2 @: c
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
k+ b ^! K% X; a' H |
|