|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
2 ~( @5 X+ D( V/ F/ H(byref x1,y1,z1 : integer; part : object) : boolean
5 O4 J+ M6 x% h- Dis# U6 n' x: W/ x5 g9 |3 [
i,j,k,w : integer;
4 `6 ~; {6 r. j* \do' t) ~: v! D# _8 D% O$ Z5 h
for k := 1 to Crane.getStoreZDim loop3 h1 d3 f+ n; L4 y% |) Q* ]( h) b" M% ?
for i := Crane.getStoreXDim downto 1 loop
: ?# G4 L: G6 l0 t/ N for j := 1 to Crane.getStoreYDim loop
/ o6 T8 [3 ^+ T3 q2 W if Crane.placeIsFree(i,j,k) then# _; J) z% |) K b! ]+ C( `
x1 := i;
( O2 _- C# `- H6 |& l4 \ y1 := j;& ?$ T% V! a- e3 `
z1 := k;& w, ~& W: }, k: E6 G5 u q
if Crane.placeIsFree(14,1,2) then
! {$ E) F' Q, r+ K9 E8 \. y w:=1% S; o* U' H2 Q5 ~
end;
( B& U- t( I0 y2 { return true;; n! P8 _: u/ X* m3 U* z5 ~
end;
3 q" Q' X; p: C5 u0 U" @ next;6 Z% H* d; i* U4 t+ u h
next;
$ v+ }' R9 u, {% G) F& r next;! f: B8 m7 a% N& P
return false;
( w8 j$ t" n! J, kend;
6 f" Z3 Q/ N: h# y. X& M 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
2 D X! [8 g: \" J2 x: | } f |
|