|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:) I6 X! {) A e" K/ F4 |
(byref x1,y1,z1 : integer; part : object) : boolean
\, J L7 e$ i. ^1 d* Nis6 q! `5 P) ^, b# N' d
i,j,k,w : integer;5 [ @9 {- \* y8 g% M; D; K% c e
do
) u1 i* W4 p; h for k := 1 to Crane.getStoreZDim loop
4 a+ b+ b, B3 V/ H+ b8 P/ d for i := Crane.getStoreXDim downto 1 loop5 J/ D' Q8 Y N/ M: w& h& i0 A3 {0 |
for j := 1 to Crane.getStoreYDim loop
/ u$ P4 X! s# ?8 m" o2 ~, N- ] if Crane.placeIsFree(i,j,k) then- q7 D8 _1 b( W2 g" K* d
x1 := i;0 [- S! V5 c3 o
y1 := j;
( g. k+ Z% T; G z1 := k;' \# j7 g+ Y) v N) `3 B ^6 F G+ m
if Crane.placeIsFree(14,1,2) then, |$ `4 J$ i, C! D
w:=1
& p7 }6 g* L( B: t end;8 `/ l& {5 M7 w5 |5 E1 q
return true;. c3 h* C2 ?& K, u
end;
# e7 {# Z2 ^( ^) Y+ r next;" N: T( f# I9 \5 q
next;% S4 U) e: Z9 I
next;
, |; Q1 Y+ X! P7 V6 D return false;% Q+ w; H7 u: x$ E* O8 G. d8 W
end;9 F6 t K4 @8 v
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
$ T' @. D3 f2 j1 p5 K7 x |
|