|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:1 I# [2 u- j4 r# W/ X
(byref x1,y1,z1 : integer; part : object) : boolean, L2 ^+ x2 R) b
is6 H" a4 ~" | Q' l% ^5 N
i,j,k,w : integer;
|4 W+ d: V% E4 y0 A( v; qdo
& e2 Y2 z/ \% P/ U/ r for k := 1 to Crane.getStoreZDim loop
5 w1 e5 n4 I* e: g4 e+ Q, \ for i := Crane.getStoreXDim downto 1 loop
0 o; W9 F; {$ G for j := 1 to Crane.getStoreYDim loop& t, S6 K* }; l5 c T7 |
if Crane.placeIsFree(i,j,k) then& |$ f8 n$ Y2 W+ J$ l- v3 p$ b7 r
x1 := i;- d1 ?) X& e6 _5 j9 k7 S
y1 := j;
1 t* i8 t' t. x( D& B3 x# k z1 := k;; m$ b8 v5 m7 X
if Crane.placeIsFree(14,1,2) then
9 T+ m3 f" m9 ~9 }5 Q w:=1" k4 Q" |/ Z3 i. l, k& G
end;
0 B$ W. t# Y, k/ m4 \# G* ~ return true;0 Q& Q* `2 N+ q+ I0 W
end;
& i x- I: ~( }: ? next;
+ e/ s* c% `6 j next;
% _& @9 m6 v$ @3 h4 {- d) J next;
. o' g' A$ P% g! B% n6 n: V- w return false;
! k9 v- l" a" u) d5 Wend;8 c. Y- ?! o. i% V% M/ C: E X
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?3 t5 b* `2 C+ a0 b
|
|