|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:9 U2 M$ a( b# o7 d5 L4 C2 x
(byref x1,y1,z1 : integer; part : object) : boolean
; e/ ^6 E9 J; L- \& Z5 ^is
: Y7 e% J# Q ]; {, k. o i,j,k,w : integer;
4 P1 d% e/ k: ]; R& \" c3 }5 h5 [do
7 o1 J+ r" n- w; p/ i& A" A1 Z3 d for k := 1 to Crane.getStoreZDim loop' I7 a9 U8 C+ E* c/ G- ^: s
for i := Crane.getStoreXDim downto 1 loop# I+ x& m7 x. Y& s
for j := 1 to Crane.getStoreYDim loop0 q; c: _1 M$ U- J
if Crane.placeIsFree(i,j,k) then( M$ l( x& i% ?: Z! d- _
x1 := i;( k8 Z' M6 C. Y. O6 |
y1 := j;; \9 v" ]* p2 m* s) _2 p
z1 := k;
) U& K$ K3 H5 _9 X' f1 @$ [ if Crane.placeIsFree(14,1,2) then
; l6 ~' q C& i4 @% y( C# {. N w:=1
% D+ o- Z/ K! H h6 L; c end;
3 U' i; \" F- f# I, ], g0 C0 b return true;7 H& L% L( Y. t# Z9 A- F2 g
end;' C0 s) q% P# X: k4 U3 T, c% X
next;
$ [; A& `. A, p$ `& |9 p& C next;
, ?8 Q- x8 m9 p" S next;" X+ m6 q+ R3 `% H4 l
return false;) P5 H6 c4 Q5 a& \) R5 d: a$ E
end;
! p, g: s7 X, S; k 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
8 C! R( k1 b: Q$ X; y' {7 z% ` |
|