|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
& i' s# y9 V& E0 a( x8 T; B( l(byref x1,y1,z1 : integer; part : object) : boolean
4 S. Y! ?7 _9 e2 S" g- Ris
3 s/ R7 f# ^0 _8 }7 q1 x- J i,j,k,w : integer;# s4 I6 S7 C2 S: O2 q9 D+ b0 ^
do
A' O' y2 S u$ {1 K; G% d6 q for k := 1 to Crane.getStoreZDim loop; P# N' H$ g% |9 q1 }
for i := Crane.getStoreXDim downto 1 loop
5 B$ H& }0 ^6 _7 [ for j := 1 to Crane.getStoreYDim loop
. j$ i. J% Z$ O% H4 Q% Y; Y& ` if Crane.placeIsFree(i,j,k) then
- n8 {; U. L% T% X4 { x1 := i;- e5 I- l! d3 i9 A3 g: l, p
y1 := j;, g: x9 D/ ^; I+ i9 c
z1 := k;2 \' `* `! ?; \& g9 r
if Crane.placeIsFree(14,1,2) then
9 @+ K8 ]4 w @+ J$ m w:=1+ u$ X' c. ^) ?& _
end;1 Y# [3 J$ D& W
return true;% i( n, B) x/ |% g) p- d
end;
! L: x9 l& i. C/ N& b- a5 b1 {) K next;" D$ `# V) d& g6 P, A
next;5 a' | }/ ^# G7 g
next;
1 i) i( M; H/ k1 y% n3 P return false;$ a! y4 j$ x, D) X; H$ r3 K4 d
end;/ _" e: d! h! D+ [# F% l. P+ u
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
; G7 n+ E9 x" r' P |
|