|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
. [ v2 v3 I8 G, ~$ }7 L(byref x1,y1,z1 : integer; part : object) : boolean$ I, Q) m4 b' d0 J. v
is
# | D$ W+ ~" i C \) e( } i,j,k,w : integer;
% I, }2 M3 \5 S' v& }( H( Gdo6 u3 }# K$ l& c4 I! o5 K, `" y
for k := 1 to Crane.getStoreZDim loop3 K1 M$ H S D" c) T
for i := Crane.getStoreXDim downto 1 loop' S6 t) Y, F" Z9 z
for j := 1 to Crane.getStoreYDim loop
8 t1 h$ h, I# b- t6 G' L' b$ U if Crane.placeIsFree(i,j,k) then
, H* j0 K- W D, E0 g2 h5 P x1 := i;
9 I" ~ S) B% V y1 := j;
3 |: ?& ]( p0 s& r: {$ B% Q z1 := k;, y, n+ U# ^4 O$ ~
if Crane.placeIsFree(14,1,2) then8 c7 h0 z4 ^$ z; j
w:=1$ H7 t# [/ `3 l6 v* D
end;8 T2 g e: [' [' V% |6 I
return true;
7 Y: p% h; ~9 j: a8 C9 U$ b end;- ^+ Q3 f0 P, v4 V
next;
3 G8 O5 t& }2 [' l6 j! T next;5 ?. @# E5 o" n
next;
; q- Z/ N; T+ a return false;) y6 D C2 F; X2 A
end;
& M) P1 A; ~, @; z+ U# f 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?1 @+ O" Z0 o5 a
|
|