|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:5 q5 b$ i; D# {$ ?5 I2 @
(byref x1,y1,z1 : integer; part : object) : boolean
' @) f8 f8 _ l) s9 bis
$ p5 q! U# }$ v; h, o i,j,k,w : integer;& N2 y- z8 r2 i
do1 p# L1 k+ u" ]9 }. w2 x) E3 X
for k := 1 to Crane.getStoreZDim loop/ r: c9 I0 t" U" w* \
for i := Crane.getStoreXDim downto 1 loop
: c! D0 T6 \" B+ h x& F for j := 1 to Crane.getStoreYDim loop9 e. O3 i$ S: ^1 G
if Crane.placeIsFree(i,j,k) then3 I& W8 \! e4 b; F
x1 := i;* g6 A1 _5 ]% R
y1 := j;
2 _" k; F. s8 a4 N1 y6 y z1 := k;: l" [6 w# r1 b! f7 w
if Crane.placeIsFree(14,1,2) then
4 R3 S1 U. D/ g9 D w:=1
0 B$ h' A- f. F+ C2 |" Q! C end;' q2 c% ~. l4 B5 A& R
return true;1 |/ M e4 e; j+ }% t" \ h
end;# E, ^5 ^4 Q: H+ i
next;
, X$ s. l0 C1 k, m( W next;
9 [4 E0 {& ~' I( Q- e$ g& N next;
! K6 g* z$ |4 v9 l y# x return false;- \# V* v( Y/ B6 l; q9 a9 ^
end;
8 g0 i) Y; y0 j/ T; x9 @& P i5 v 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
5 `, s2 M+ h: |8 ?9 C |
|