|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:% R( [( o4 R- [1 ~/ Y/ S
(byref x1,y1,z1 : integer; part : object) : boolean) T% U6 D2 Z; M2 B" m- d X
is
( _+ r4 T& M& b7 F6 P; I0 G i,j,k,w : integer;
/ m8 \0 Q& \, H& g; ^! x+ Qdo
n6 a# i8 q) j; U: p, p for k := 1 to Crane.getStoreZDim loop
# F" d" l y) Q+ z for i := Crane.getStoreXDim downto 1 loop
! }* j. A5 h( E' R4 Q' Y+ H0 X0 | for j := 1 to Crane.getStoreYDim loop
C( i$ J2 u( ?; h if Crane.placeIsFree(i,j,k) then
( t2 \5 c( k/ S/ G x1 := i;
+ D: E5 p7 R3 r. P y1 := j;8 _; ^9 s6 ]" k- y, f
z1 := k;' j+ X4 ^; ~1 \ e* T
if Crane.placeIsFree(14,1,2) then
5 K3 f# a. }$ \- F0 c* E w:=1
1 n9 X$ l0 w) J& ~9 x% Z% X3 d end;9 }! z( y+ E8 z, d7 |
return true;
8 j$ [ Z8 G$ v* E0 V8 d end;# q3 X$ p$ r5 H" L, E7 A" u: b
next;* ~( h0 B; Y2 z4 z" i$ `$ n0 u
next; M% C0 S) o' L+ H" w+ s4 t
next;
6 Z9 w& k8 q, x) ^- f, J return false;
: H" S, ~% V: Nend;7 \: [2 m/ l9 d7 T
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?4 w0 b, p9 X* Q9 p P `2 B" Z
|
|