|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
) P J8 {! r& P" `- m' }" T/ o(byref x1,y1,z1 : integer; part : object) : boolean6 f$ Q; O$ y0 }5 v4 k; ~# @3 e
is8 D% ]" O- B4 D1 _+ S: a8 g
i,j,k,w : integer;
( i$ \* N5 [- Y" |3 Mdo) ~/ U: e5 U& L" |- r$ X, ^; I
for k := 1 to Crane.getStoreZDim loop+ ?0 d, X; Q; D+ U6 u/ S
for i := Crane.getStoreXDim downto 1 loop
' l" f( p$ N3 T5 y' I for j := 1 to Crane.getStoreYDim loop
$ A$ S; L) G" r9 N if Crane.placeIsFree(i,j,k) then
( F6 |& p! \# B: X" K x1 := i;
: h$ J, W7 M) i/ d7 Z y1 := j;
$ z" t1 U7 U. y5 q z1 := k;
$ a0 s" D+ b% i3 S, J+ e. a# |" ~6 B if Crane.placeIsFree(14,1,2) then
7 I: o H- e5 E3 M w:=1+ J ]% L# m3 |+ Z9 `, t( Y
end;- B8 p! T' q( U
return true;' x2 p9 d' I5 s
end;
, c' K9 r, I9 ]* d' j* M( Z) v- R- I. H next;
+ q5 k* ]/ r. G+ k$ l( |3 X) R# e+ O next;' B/ M8 |& z1 U/ ?2 w+ C4 H
next;3 S) P5 A% z! x- W0 S
return false;5 O7 J- m I7 w
end;
O, @& C% Z4 e1 U7 c+ B! H6 i 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
7 g% Z6 ?/ ^: T7 n/ P6 g |
|