|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:6 ?9 L* \4 k+ X$ R8 ]+ i# f9 r
(byref x1,y1,z1 : integer; part : object) : boolean+ ]) K( b5 c( Q6 n, y! v8 g
is* K3 |) }2 Z) R4 B
i,j,k,w : integer;6 b6 S# K( D# z0 w: K1 l
do; ~! j* N/ H" P- H7 d& A" D
for k := 1 to Crane.getStoreZDim loop8 e' b: f+ F& v6 ]% G
for i := Crane.getStoreXDim downto 1 loop5 h: y6 T$ f! E9 U2 z" s% f8 y
for j := 1 to Crane.getStoreYDim loop& G' i: Y: \" {. u
if Crane.placeIsFree(i,j,k) then5 H! }9 `0 M$ ~3 }5 X
x1 := i;
& f! e. M4 y: j* F8 a! G! g7 ^' w \ y1 := j;4 r- n& o* c g8 P$ V
z1 := k;
) @! y e4 s) O1 K& S' M% Y if Crane.placeIsFree(14,1,2) then
+ ]! _/ u( u- }2 q9 ] w:=13 q6 z/ h" q8 D! F$ `* O
end;- D0 _4 ?9 t$ V
return true;& B+ ^8 {1 X0 p
end;
5 \( _ |( X; ^" s ]% e next;
: r( \7 n, _8 Q/ N8 V next;) C* T7 S) A* C0 y
next;4 K, _/ V* T1 l/ v* D9 z
return false;
* X* ^( X2 ^; O% g L% V5 [" Mend;+ Z$ J: j! p9 w5 p& K# X5 G
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?& [* |$ S0 E" |* E0 a5 w
|
|