|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:1 \* N: C: G& ?0 D* ~: z: [* i; o
(byref x1,y1,z1 : integer; part : object) : boolean3 m' P: @2 f6 o
is
' V# g! s+ y: t i,j,k,w : integer;
7 o: w( i5 @+ z" R1 r& xdo" u2 b( |" n8 B6 ?9 @
for k := 1 to Crane.getStoreZDim loop' Y/ ^9 e8 [" d
for i := Crane.getStoreXDim downto 1 loop
L( `# b) |! l/ P' A for j := 1 to Crane.getStoreYDim loop' f; J% L+ M+ S- J
if Crane.placeIsFree(i,j,k) then' G& a* N7 z0 b" b* ?' I/ {
x1 := i;
3 e5 m( n/ i3 V0 a l y1 := j;" X7 _0 U8 M8 Y& ]: v+ @+ p
z1 := k;' B. v5 d% b; y2 I6 U
if Crane.placeIsFree(14,1,2) then
' V% O) H9 K; x. E0 n' I" f0 z w:=1
* m! _7 i6 q# h+ M& W6 t end;
( W" H' o! _: g) b9 s return true;" U# }- G7 M: U3 T A
end;# q1 ]9 i" \; n4 C
next;
J( _% G( l1 h8 G+ I& b next;6 ~! C& Y7 e, l# |9 G) B
next;4 J- ~, G( ^4 r6 R0 r3 J, M
return false;5 @- S3 `. c7 l8 i" Z3 s B( D
end;6 [& T' i! h! `( n( B
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?! F. J9 C: E* u% p3 v5 F ~3 l+ C
|
|