|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:4 ~( H B7 R7 x/ r7 t) J+ n) \' M
(byref x1,y1,z1 : integer; part : object) : boolean
: i) U; \6 ]6 ~% b2 \% E) \8 ?; kis
! e7 v4 k) N" a8 R! E4 S i,j,k,w : integer;
c! P; {7 I& @. l( jdo
, R8 j2 \% Z$ c. r, C0 y; K for k := 1 to Crane.getStoreZDim loop+ j% p5 a: t, o" _' ]
for i := Crane.getStoreXDim downto 1 loop) y$ g( o, Y: B$ T! e3 Q
for j := 1 to Crane.getStoreYDim loop7 o8 r L( x$ X, |- H$ d1 k
if Crane.placeIsFree(i,j,k) then
* ]/ G4 p, B# O! J5 O3 y8 Q2 w4 c x1 := i;
1 @3 V6 R6 D0 V7 Q y1 := j;
) h# z: k. L) d$ |% G z1 := k;! R Q' S* a# T2 F! Z5 ~3 l& d
if Crane.placeIsFree(14,1,2) then4 q" x# s0 l8 M* {# W% Q# X
w:=1
) o& v$ C% N, e( W+ r- Q& E end;
! t" h( d6 C, z' W. X3 | return true;# \) Q* x# \6 I- Y# y% ^ A5 O) t8 s9 ?
end;
% G1 n( Z. @$ P- l4 W, y) P next;
6 K1 c% U9 \& Q! P next;' y) g/ }& ~6 s* z/ K. |
next;, d; }0 A0 n6 z( J
return false;2 ]- u8 z; X( _: @8 x; g
end;
6 Z/ g' Y" A/ h6 k9 ? @! x 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
( A( R4 }" `" B# x ^# }3 \ |
|