|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:& Y1 h( A" [ g* l) G2 D! I8 C$ R+ n
(byref x1,y1,z1 : integer; part : object) : boolean0 o" f; Q6 {$ {& Z
is
3 t; ]; n; i0 g) j: a3 \ i,j,k,w : integer;1 L% E+ t' a) b/ i1 W7 X0 v, @
do" `1 c5 R! ^7 t5 @* n* f! l
for k := 1 to Crane.getStoreZDim loop6 i% g; h; ]: m+ M0 A2 L9 Z
for i := Crane.getStoreXDim downto 1 loop7 Q/ H9 P* l$ u6 Q9 g; A# r
for j := 1 to Crane.getStoreYDim loop$ _, n' h8 ^0 d# D1 l
if Crane.placeIsFree(i,j,k) then1 l3 [; Q# `" N+ p4 a& U# @
x1 := i;& o2 m5 A k4 K5 z/ l( v% Z
y1 := j;! |+ f6 z" D8 e* Y
z1 := k;
* ~! Q, C E9 a* Y9 H if Crane.placeIsFree(14,1,2) then- }# N7 j; F6 q' t
w:=1
- ~7 m$ b8 Q& L: z end;
8 A. w) N7 e1 {$ T3 o1 R return true;/ D0 L' v& q9 `* ]/ S
end;9 K& d. s% |" \) z$ E
next;
1 _4 Y( G3 P, z8 A next;" n' x/ f2 i3 I+ C7 w& p
next;2 K+ Y7 E3 ]5 @8 O, e. e/ C, G- [
return false;
7 V7 s# h7 M) K4 eend;! S8 V" N7 j5 a" m2 V
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?8 r$ S- f: R( P5 k: q% q$ x0 I
|
|