|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
/ ?. J' x* g7 k& H' d, t3 t4 b(byref x1,y1,z1 : integer; part : object) : boolean+ y6 _+ y' c/ P) X1 _
is
! g& D- x+ J5 h8 H4 @6 w) b i,j,k,w : integer;( k8 f6 I, _: Y2 K% p7 Q& }( @
do
% H9 D( V5 e2 U. f" X6 L for k := 1 to Crane.getStoreZDim loop1 m& F& [5 E W: U$ d
for i := Crane.getStoreXDim downto 1 loop
9 f, w7 S; I4 y: \/ D0 Z! K for j := 1 to Crane.getStoreYDim loop
- Y/ \2 Z% V" k9 x( O if Crane.placeIsFree(i,j,k) then
0 B( v1 D& \0 `6 F0 d x1 := i;
8 k) W' \8 `8 E2 H2 Y y1 := j;7 J/ U( w) g& j6 t+ e1 m
z1 := k;
+ |4 i a9 n7 m7 o6 ~0 Z6 {7 n if Crane.placeIsFree(14,1,2) then
8 _3 ] k8 b: G w:=1' z# T, o* u1 ^ Y9 I
end;1 }3 J& f- M( Z4 Q7 ` {) K4 S
return true;
" K- n+ g$ h; J9 m" x end;8 z9 d$ }6 Y* m2 N7 J) U
next;
) v ^* m9 T3 l next;
2 [3 a' B, @" o. d next;' Q& O, J/ r+ e! |" B8 Q
return false;% y- W9 C( e' ?1 Y
end;
6 {# B6 i- j9 C( L: |9 i 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?$ y+ F7 p" @4 R& S6 ]" E
|
|