|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
* J: M3 N, O8 C l, D(byref x1,y1,z1 : integer; part : object) : boolean0 E0 j/ g2 L1 ~% f) Q
is
' O q8 W& ~9 B/ [0 v6 d3 r/ P i,j,k,w : integer;0 W( \ c- Q% ?0 {1 _2 i6 A
do' }0 A: P. P4 X% u( G3 G! u
for k := 1 to Crane.getStoreZDim loop+ O0 [( J" r* g& Y6 s+ T4 V6 r. ^/ T
for i := Crane.getStoreXDim downto 1 loop2 K* j b1 N0 b: m, A2 \$ a
for j := 1 to Crane.getStoreYDim loop
% ^5 [5 h$ h% B5 x8 Y if Crane.placeIsFree(i,j,k) then8 ?; t$ s7 n' F9 k
x1 := i;
4 i8 H0 D4 @/ `& R' e! n y1 := j;8 _" E( C. T' ~9 f1 r
z1 := k;
! \. W' E4 N+ n: C+ l if Crane.placeIsFree(14,1,2) then
) l [0 W! d) p6 _0 |* d w:=1/ E- i6 H, S" h: k8 z e
end; y) X# U! D7 R' G3 u( q9 A
return true;
9 P" W; O" A2 ~$ J, G5 C end;
' d- ^* z9 ]0 o3 m next;
7 a# R' ?2 C- h1 V: g next;/ |1 T: D1 R2 l
next;
; g$ F4 L$ _7 \1 q( _9 ` return false;
4 `- N5 p$ b$ {( E7 Rend;! _ E' n, j1 x" @; C
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?" J. F1 N( t8 N( O, U! A2 v
|
|