|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:1 f% t- h2 J8 b' f4 ?" y
(byref x1,y1,z1 : integer; part : object) : boolean: O- o6 _) N0 M8 n2 J) v# ^
is, k9 E2 Q: I" l3 g/ n
i,j,k,w : integer;
2 l' ]) h6 b/ W* rdo0 v8 _0 S9 ` g! ]
for k := 1 to Crane.getStoreZDim loop
: G; |$ e5 R; h: k7 \2 t7 D for i := Crane.getStoreXDim downto 1 loop8 `( M: g! e9 `% r
for j := 1 to Crane.getStoreYDim loop
. S8 t2 `( O: e% N if Crane.placeIsFree(i,j,k) then3 r0 m8 l7 G9 I { G$ N5 ~+ T) h) X: X
x1 := i;
/ t% w1 N( \* L7 k y1 := j;& p7 ]2 [! Y+ @
z1 := k;
* U/ c, l3 c. A" e6 z, B if Crane.placeIsFree(14,1,2) then8 e2 ?- v2 X, H. h4 x M4 p S
w:=1! S- {8 M' a# L
end;
( a+ o6 Z( \3 e: S return true;
l: B% T. b3 U1 r5 S( [ end;
5 N5 Q4 u% c3 a next;
" P5 p5 f9 r# T/ W* W1 @! F next;
6 t+ _. R, o' C8 ~: W' u+ ? next;
0 K2 p0 S3 |! t# a! {' Q return false;7 P- A" w! R# p2 Z G M" E% o$ D
end;
# f- k6 L, i; S! g$ H4 P9 v 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?: X( G$ H' \5 B
|
|