|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为: g# O, b8 g3 m! q4 M
(byref x1,y1,z1 : integer; part : object) : boolean
, O5 F9 Y* f" @7 O6 kis; E5 S- f5 [3 r* F4 [" n& ~
i,j,k,w : integer;
$ J' j8 Q6 u( n: }. J( ddo& p/ K$ @. u1 ~
for k := 1 to Crane.getStoreZDim loop E, C8 Q+ Y6 y' j' E
for i := Crane.getStoreXDim downto 1 loop3 V: t$ b: i, D% r
for j := 1 to Crane.getStoreYDim loop$ U- W9 ?4 f/ M) P2 k, j. e% p
if Crane.placeIsFree(i,j,k) then; S/ M( z+ m' p5 X1 I" x
x1 := i;8 t2 j b$ Y7 X, c/ v* u/ R7 v! q! f
y1 := j;9 l5 h1 p) Z! X; k* t8 k0 O% a
z1 := k;: J6 a" L- F% ~
if Crane.placeIsFree(14,1,2) then3 T! _3 }" ^ `+ y6 d
w:=1) A8 X& k5 E7 O4 [( e( s1 H* w/ k
end;
% r2 m9 S3 Y9 C2 V. M% M return true;
+ @8 w# u8 o0 A$ M1 v( i- ? end;; K* r9 D6 a/ F& J. j# H
next;
- b5 A0 h1 o1 N/ ? next;( e* G( k- ^, @- q5 P" L
next;
, I, J. f( ?3 i8 {' c* K return false;
, v F% O+ K2 Q7 \end;
+ h3 E( a" r5 R; ?( T) Q9 ?# e# j 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
$ N" i5 k8 ~4 \& e7 F) Y |
|