|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:: w, ~! p, Z# c: ~6 ? S
(byref x1,y1,z1 : integer; part : object) : boolean
* u- Z* u8 y4 A- z5 r7 v- Lis- ^- v& _3 M/ f U) T* R
i,j,k,w : integer;
6 }8 S5 n& a9 j4 ^do z8 e2 b# }: ?, P" \/ s2 e" ?
for k := 1 to Crane.getStoreZDim loop
) x: x1 H1 h( |7 T7 G4 B# Q for i := Crane.getStoreXDim downto 1 loop) l- |% M% e5 k# E# C* D
for j := 1 to Crane.getStoreYDim loop3 x; w0 a- R q" v3 i5 @
if Crane.placeIsFree(i,j,k) then
' M+ f, f$ r# k: X x1 := i;6 z& @ Z4 {' f$ n9 I2 x
y1 := j;
9 \. z. i" q" i z1 := k;% ~ ~3 @$ n1 w8 Y9 p
if Crane.placeIsFree(14,1,2) then
0 c" @ j; f. Q. A6 n/ [9 L w:=1 R' S0 s& {2 W. g
end;
6 Y, I/ M+ d& t9 y4 ?: y& M$ |1 T# _ return true;
1 h, z6 y' |. K3 ] end;
9 F4 Z7 _! r# ~* c next;$ }2 V% B. O2 |6 Q4 x; G0 A7 `
next;
) o* X& r! c3 O9 d next;* q& ^9 w2 b0 B9 H' y# D
return false;
& K' s# J2 o% @3 c5 r! Yend;0 Y3 |/ Q& ^- c! N- R+ K
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?9 l( ]( @6 C B- Y
|
|