|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
, N, T' N- h" W! j& u: y: H7 c3 l- i(byref x1,y1,z1 : integer; part : object) : boolean
3 y. e1 ~# Y$ T' q- p+ Nis
0 L- y: K5 s' {, {3 `0 | i,j,k,w : integer;
- P3 s6 \# Q! U. p: c& \9 q5 ido
' P) q& F N/ Q4 q, A# ]7 F- n for k := 1 to Crane.getStoreZDim loop
& m6 W$ C2 N; Z# t6 ^: F; i for i := Crane.getStoreXDim downto 1 loop$ i; m, F! K" H
for j := 1 to Crane.getStoreYDim loop1 _; e$ x! }4 Q6 i6 z& h
if Crane.placeIsFree(i,j,k) then
) `# d- N7 o+ a: \) A x1 := i;
4 K& @" _- S. k1 U y1 := j;
: {; T/ e1 _- L) n S4 G7 \/ w z1 := k;
: f! F7 k, h8 x& p( r if Crane.placeIsFree(14,1,2) then
3 z U6 \( _' @ w:=1) U2 X% N8 @9 ?7 n# O. u
end;
9 S3 i) L7 Y4 D7 ] y: H return true;: d$ X2 B; N' X6 a& ~5 b
end;& [# {1 x. h c- r1 g, V5 ^
next;
- q2 M: C" K; W6 G next;
5 k9 j- }% R$ b6 m$ ~: n next;
/ G* @! H# p! L) o' _" F return false;3 F- |* F% b& g$ | X
end;
* ^- x( \; f+ ^0 ~; F% V 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
; y" _4 |. m( H- o |
|