|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
: O- ^- l8 X: p6 k9 i+ I(byref x1,y1,z1 : integer; part : object) : boolean$ a% w5 F' `3 i# A, W8 S: Z
is
+ E9 S0 }# @0 U$ n i,j,k,w : integer;$ o. G. j4 U$ C9 u
do
7 M3 V% h+ ~, T* `+ D for k := 1 to Crane.getStoreZDim loop
5 m5 Y1 A1 ~0 F* _2 T' P for i := Crane.getStoreXDim downto 1 loop
/ w% r* q7 c% g0 ]/ |. [6 } ~4 e: x6 I for j := 1 to Crane.getStoreYDim loop
# l- u8 i; \/ z v if Crane.placeIsFree(i,j,k) then
: v0 J# ]1 h6 X5 t x1 := i;) I8 @% m3 y5 t
y1 := j;
& T) }, r3 T6 k" p0 u z1 := k;
4 _7 [) G( v& K4 ^) N$ R+ c, t if Crane.placeIsFree(14,1,2) then
3 _6 z9 g8 U+ G* u/ ]1 C w:=1
4 |" C, z, j/ D end;
$ a" S3 ]0 N- `0 w return true;) ?. _) V( p% r' L3 ^( H' ~
end;# [5 G' @6 j! r% Q k
next;
/ M3 a# O+ K' J# X next;) ]' T& ~% C2 E4 N' L+ v
next;
: F* g9 G# e& U! Y& F return false;8 I9 i0 H$ c# K' {! d9 H( K! Z) d
end;2 i; e" S1 |" q, G
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?* l2 k$ N, P8 a: j; Z, H/ q0 ?
|
|