|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
7 L7 X4 B$ ]# i% q b [/ T(byref x1,y1,z1 : integer; part : object) : boolean
4 Z' X. P& \; lis1 A& Y' a* K0 ~# V5 X0 a4 y
i,j,k,w : integer;
& z- \; O' R P4 L! Tdo
/ t( ]7 ?% |* V+ ^, z& l for k := 1 to Crane.getStoreZDim loop. w/ Q& H+ |( V3 l+ M0 A. M* r
for i := Crane.getStoreXDim downto 1 loop
4 {' V; [& e4 [& ]# ~) F for j := 1 to Crane.getStoreYDim loop f! ^# X. _- p5 @6 v2 L
if Crane.placeIsFree(i,j,k) then9 Z* J' H5 V7 r% }# D& `3 i S
x1 := i;# K. Z8 h, U" I' M5 _( Z
y1 := j;
! q3 H2 b9 W" o& D' p8 q/ h z1 := k;
- I5 ~$ c e7 \, `+ G5 P if Crane.placeIsFree(14,1,2) then
1 z0 w' y& M C w:=1: U( m- i; }, |: H6 m$ z, O: @# u
end;' N! ? V, w9 u1 `1 X) c
return true;
8 i' r+ ^6 r9 T2 v' M! \5 H7 y9 N end;/ E. R% W% G# _9 O5 T: g
next;9 p5 ^/ Z8 E- M+ y+ h
next;
; V8 a3 e2 f) \' q next;
, s% N0 d E# |5 r P$ P return false;
2 Y0 D# C; e( H9 |: e& u% {+ T `end;
' g' u) h! z) o$ { 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?, o0 N! l3 G# b4 K0 c4 ^
|
|