|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:# p; o9 o; H; e! ^( U; u+ f* r% ]( g
(byref x1,y1,z1 : integer; part : object) : boolean
% h' \# A! F+ p: Lis
1 T9 L8 T D @0 T i,j,k,w : integer;) I% w3 i0 O2 l7 v
do2 |" I6 J: e9 Q' V2 E7 Y
for k := 1 to Crane.getStoreZDim loop5 K# C% Y8 u/ ?0 A8 j! Z$ z- {. _
for i := Crane.getStoreXDim downto 1 loop9 r7 c9 p' M( l* z+ K: m
for j := 1 to Crane.getStoreYDim loop
' n% y2 R6 E) e if Crane.placeIsFree(i,j,k) then6 P2 P: ^% @; A& `2 v8 W/ m
x1 := i;9 d9 {! L% V& u
y1 := j;
( j: D& N3 j/ I! I2 z0 n G z1 := k;
/ c+ z8 t4 w3 w6 @ q if Crane.placeIsFree(14,1,2) then! G6 [- }) \$ Z* b
w:=14 H3 |$ e) e/ Z3 X
end;
2 |! _' m$ i# [7 y4 W& d) n) u! v return true;0 b$ z# g4 s3 V
end;
% ~" t% j5 O D. R next;
7 o& T, b, ~9 x' s next;
4 y+ E9 r/ g8 F! B next;
) j3 B) x. p* B! x R return false;- V! Z2 {% `8 X; R
end;8 s. i j- p1 d/ T- }
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
- q0 @( x/ B1 ? |
|