|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:4 I8 }4 @' x' G, f
(byref x1,y1,z1 : integer; part : object) : boolean+ M9 c' A; G" H6 V. u
is$ G! r. w+ O+ E
i,j,k,w : integer;9 Y% ~) }! h8 i- B3 w
do
, C, M" ^1 h6 h1 S4 [: X$ B for k := 1 to Crane.getStoreZDim loop2 l2 x0 b+ o1 \; S# m/ p1 Q. N" Z% G
for i := Crane.getStoreXDim downto 1 loop
* E! S7 f) \" O* J3 m9 r: I for j := 1 to Crane.getStoreYDim loop
1 ?+ h0 h6 r- D7 `: ~! d if Crane.placeIsFree(i,j,k) then
5 B4 i' {7 d. Y/ r* s x1 := i;* v$ _3 H Z7 ^2 I
y1 := j;
% D+ H, M9 B, E. e; ?! m" r/ S' g% S z1 := k;* ?* e1 n4 v* \0 Q9 [/ {
if Crane.placeIsFree(14,1,2) then0 H; {1 {0 R5 U/ a: I
w:=1( P: H$ k8 g; {
end;
: z3 ?- R9 g1 N+ ^ return true;
' E4 U7 N1 Y* \ end;$ ?9 f, N0 i) }% [
next;; f! J/ x2 j$ W% Y$ S& ~
next;. E# j: M8 w0 O$ ?
next;/ I& Z$ Y7 ?/ o0 Z
return false;6 J4 X5 x) z( Z0 |7 P! A
end;! R) ?; K) F" V3 f9 K3 p* @
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?3 U; i7 H4 |) f0 r5 W) O6 U
|
|