|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:# G2 H9 x1 A) r& ^9 l# N
(byref x1,y1,z1 : integer; part : object) : boolean
% @5 T7 h9 U2 Q# q4 dis
9 \" b0 O9 \1 O0 p' N9 o/ W- U i,j,k,w : integer;/ _2 m; L! I8 Q( W8 T1 |/ K
do* }4 m4 ^- ?* t5 t7 m
for k := 1 to Crane.getStoreZDim loop
2 o% A. c- G0 y& A for i := Crane.getStoreXDim downto 1 loop
& W; Q2 J9 ]) k- G1 j for j := 1 to Crane.getStoreYDim loop6 Y4 v7 @) p% c) D+ C
if Crane.placeIsFree(i,j,k) then+ V# w, Z8 d" D, J& M4 V6 `
x1 := i;
6 F |: g8 P6 t6 [; O5 { y1 := j;- Z. x* t! e- N6 O$ V9 y
z1 := k;
: o& d, @6 Z8 ^ if Crane.placeIsFree(14,1,2) then
: d) |! H* m- p, X# e w:=1& M0 m( t4 ^, N% j6 A; c3 l
end;4 ^2 P. A3 t/ `8 z
return true;
: f, f, k& ?: x0 N( y1 B l! b- k end;- T; Z* j* R, j- I" }8 b+ B
next;9 P B' G% V0 p
next;
, w/ K2 b5 B( ^: d0 g next;
5 H' ^1 z) K; v1 l' O" C return false;
# t: p+ b+ a R g; z% I! Y, hend;, Q+ P/ d/ H* n. P
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?* x. J/ Y- H# y) a, k$ N: w1 {
|
|