|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
4 `" a8 f' j O1 p(byref x1,y1,z1 : integer; part : object) : boolean
, Y6 E5 c( _2 t1 r6 Sis
4 P4 W+ r2 d3 }. j- } i,j,k,w : integer;& n* i- t4 P8 ~
do" j; Z1 @8 M1 J- Q1 |3 r: o7 n
for k := 1 to Crane.getStoreZDim loop
0 s- k7 z- _* Q3 M for i := Crane.getStoreXDim downto 1 loop" i/ D- `8 s1 T0 d n; @$ S
for j := 1 to Crane.getStoreYDim loop
5 x5 a8 r. Z6 c* K if Crane.placeIsFree(i,j,k) then
+ }. J3 q+ J& _' O/ z2 k x1 := i;
4 I2 ?+ M, t" i! h( W2 R( n y1 := j;
5 L Z& R# O3 d* ]* X" r& q z1 := k;
# T- C! f) u, i if Crane.placeIsFree(14,1,2) then
& L! N5 v A- Q. w G w:=1
' c6 A+ h8 }) p# [ end;
9 K0 \* q+ m" z, z return true;
4 H# g0 ]* O R# n7 X) D/ a" G end;0 X" i) W6 F0 T7 \% y& A7 h' k
next;
# @5 w9 K: v- n5 M next;0 T( n: R! m% {9 a; {
next;0 s) T, F4 s# Y
return false;' L7 H: q! d8 D+ u
end;$ A8 W; O# ?- {* w
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
! i/ P. i" L. _& s: H& i |
|