|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:5 ^* M& F5 e- R- \3 J
(byref x1,y1,z1 : integer; part : object) : boolean" j. V2 z+ R# D
is
6 g- [, M# H, k$ w2 P' N i,j,k,w : integer;2 |- _/ i8 k/ B
do$ A( m9 z8 x" n) y7 @. l
for k := 1 to Crane.getStoreZDim loop; b3 r3 g5 ]' E5 Z' s6 L5 K# Y4 l
for i := Crane.getStoreXDim downto 1 loop
& J J, O& {% \5 q$ P+ p7 y0 ~ for j := 1 to Crane.getStoreYDim loop
' Q9 u7 m0 |; }$ M2 G- i if Crane.placeIsFree(i,j,k) then( W, f8 p' O5 }; ]; p5 x' t
x1 := i;0 V P2 {2 V' [ N4 A& @* [
y1 := j;# l! q- H( q( b
z1 := k;
_6 \' `0 f5 w% y4 | if Crane.placeIsFree(14,1,2) then5 l3 y2 e7 |5 w) h
w:=1: x3 U/ S$ Y1 z d: v; W" i* W
end;/ @5 u, \* b/ d: m3 m8 E
return true;/ J4 b7 S7 c' M7 i
end;
6 q+ {* T% L6 F' C next;
9 H' w7 M/ S6 F next;
$ @% p F! `. S7 j next;
+ q. \4 d! Z, ~( l6 V/ X return false;/ i) p' @( W$ d* @6 {
end;- M( @2 _3 X) r: q c
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?- y y; m7 f, J0 A/ F
|
|