|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:7 N& O7 f4 ]9 I: T6 W
(byref x1,y1,z1 : integer; part : object) : boolean. P9 P0 x! Z u
is
" B' n- D2 s; ]" E i,j,k,w : integer;' J2 R/ H3 _ {" _" S! J# X9 l, F' z) s
do: j% ~1 }1 H+ J% t0 S% L
for k := 1 to Crane.getStoreZDim loop
M9 t' M, F7 b( X" e for i := Crane.getStoreXDim downto 1 loop
9 i1 {! x$ i5 K: K6 I for j := 1 to Crane.getStoreYDim loop! W* ]0 V) h, V( ]1 s& r
if Crane.placeIsFree(i,j,k) then* c! V5 r3 j& }" Z
x1 := i;
1 a( [; z7 f% B* n: d. z9 M y1 := j;0 u& h; x! D8 C8 W$ T7 ]6 X0 f$ h
z1 := k;
) x+ R6 t" e0 T! Q4 H if Crane.placeIsFree(14,1,2) then
- S2 V2 M. N r2 X3 l+ i2 L w:=1
`9 w. F. B$ c2 ~! a end;( [& m4 ^6 d( b# p3 y
return true;7 O* n2 u; O1 Y; n6 Y; S
end;
# S, F% F. c4 h/ f0 F' W next;" e# X8 [/ I3 m; m
next;- k: B" e6 {9 m- e/ Z, D6 X
next;
# [! E+ u4 |7 e6 i G return false;
2 ]4 A& D9 J$ M+ c7 B! j5 _. L; xend;
6 k% t+ g) u I& t" a! a7 u3 z 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?/ f, z0 W: Q! [' o# z A9 W( X+ t! Y
|
|