|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:! x- Y& {) x& q. R. p
(byref x1,y1,z1 : integer; part : object) : boolean
m6 @* R8 _. G: S/ pis$ s2 k, t' E3 @6 G$ F+ j9 a- Z0 }
i,j,k,w : integer;
8 E' u9 S! ]/ K$ H, n! O! R- Cdo! [6 W% a/ k) f: _: ?# O
for k := 1 to Crane.getStoreZDim loop
$ D# m( N$ q7 O/ z9 R) D. d for i := Crane.getStoreXDim downto 1 loop! m1 r% Q7 p' J* C, j1 A: O
for j := 1 to Crane.getStoreYDim loop
% x" X7 w7 Y& `" ?# y' | if Crane.placeIsFree(i,j,k) then
0 E. |3 V/ S% Z& x) p3 {- s: ?8 Q x1 := i;3 Q. q0 _/ m, M4 Q6 I8 G; E5 t
y1 := j;
) B: O2 I' ]$ U" Q5 B- R7 P% d3 ? z1 := k;+ Q6 w: w! j% T# |; B8 Q
if Crane.placeIsFree(14,1,2) then5 s3 B7 |+ A' G, j
w:=1* F( K2 G; L! q$ F
end;
7 N" J% w% ~; |3 E: } return true;2 F4 M2 O% j8 \5 Q5 a, b) D. m) P
end;& d- a' _; C6 u. N
next;+ T( H: ], C1 d$ ~% f1 i+ T; U; Y
next;
2 a, F6 s/ ]6 K& q8 `! ~# Q next;7 }1 H1 G6 p2 G0 Q1 p7 P' M5 a
return false;$ R: y- q) C0 e5 A y
end;
: ^$ Q' H; ]+ s" r 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?3 g5 G ?9 ?, [ I" p7 B9 N4 n) G
|
|