|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:" V% i2 }6 q/ a% a. M- H0 Z* W
(byref x1,y1,z1 : integer; part : object) : boolean/ k/ G+ {- j* \( |
is# | b# u- v7 B0 \( \4 |0 _* E
i,j,k,w : integer;
7 C# \5 p- ]5 \2 pdo! H7 `$ G7 Z& q- _
for k := 1 to Crane.getStoreZDim loop. ] W5 Q. t6 D9 C' { M
for i := Crane.getStoreXDim downto 1 loop
4 x9 r% p! J8 K9 l" c V0 c# A% v for j := 1 to Crane.getStoreYDim loop
- j; ?1 t& [2 Y9 B+ j if Crane.placeIsFree(i,j,k) then
$ ?* _( v ]4 M0 R' J3 ^3 L x1 := i;! z! E2 l1 ?! P" q9 Y. O% r( A
y1 := j;
1 r3 C( |7 f; y$ N5 A; u z1 := k;
; e+ ~" Y7 X; s* e. D2 J if Crane.placeIsFree(14,1,2) then& h" _! b6 C3 i3 K' |
w:=1
1 x( M0 f5 ^% r4 v1 b end;4 f; ], o; `- h- B6 f. v& f& s
return true;
6 P3 G7 O$ [0 e end;
& n+ X/ M$ [/ ^6 I0 y next;
9 T" w4 }; E; I0 L$ p next;/ ]3 {6 ~" ]$ ]2 J2 ~
next;! y: m+ T/ |1 D
return false;3 t3 @) H$ z; L
end;- z5 I' K) o0 {
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?# e( [8 q5 [. u2 `- s
|
|