|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:1 W. X+ x" K3 I4 c
(byref x1,y1,z1 : integer; part : object) : boolean
# _! J3 s9 D! X2 y0 ris, j, {7 K" x& _1 u0 V4 M* V2 _
i,j,k,w : integer;
) }; V- ~* }0 y! {: a4 h( o. q* ndo. @4 U6 J* g) b q$ {
for k := 1 to Crane.getStoreZDim loop
: U- D$ |: a+ }( ~/ x4 H for i := Crane.getStoreXDim downto 1 loop0 b; D6 C) J$ b" u6 M" t
for j := 1 to Crane.getStoreYDim loop
6 k" ^: z: c0 ?0 b- j# T if Crane.placeIsFree(i,j,k) then
0 d8 f% Q# W; K: z4 h x1 := i;. Q' ?, M7 {5 q I. I' M. J
y1 := j;
A% S( z4 X8 o+ X- Q z1 := k;
! c2 `/ y% p6 d$ J, n' r if Crane.placeIsFree(14,1,2) then
. a/ i7 w" q/ x% ]3 x! h/ C w:=1' L% }& U' E/ I0 F' |* N
end;' P- L8 d5 N) ^& s1 M6 ^' B7 ]
return true;
6 Y: t! s7 z8 n- z R8 B( z6 ^ end;
; Z4 U* ^- m' O next;; p t1 s; j( z' F; T% A
next;
/ d1 [; C& h( e" W5 X; B# I! T" v next;/ t6 n: I0 y$ a; T* [1 |
return false;
+ D0 y4 ^0 G9 Fend;
; `7 X) u: M) x% F# m- r5 ? 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
& L; u& x+ T6 W* |2 q9 o: f8 |( P |
|