|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:& w5 ^; N$ O: ]6 K0 O) @
(byref x1,y1,z1 : integer; part : object) : boolean
4 \) q9 r! v, ~: s: |4 \is$ p2 u6 m! [' ~1 Z
i,j,k,w : integer;
( o: h% v. v& l+ i D: \8 @do5 h g* u& o3 o5 i' G
for k := 1 to Crane.getStoreZDim loop' O7 [9 x' C; w a+ t
for i := Crane.getStoreXDim downto 1 loop
. ^1 x( \$ Z% m; L6 n6 M* g! q for j := 1 to Crane.getStoreYDim loop7 \* Y1 {+ J5 s' n8 }2 K/ T2 {
if Crane.placeIsFree(i,j,k) then
( M+ L. k$ ^ P* ~$ ^% z$ m x1 := i;3 J- a- N' `% h( k g
y1 := j;1 b! `9 O8 u J$ M0 k
z1 := k;. R5 z3 m. z4 |; G) k2 u# L, n
if Crane.placeIsFree(14,1,2) then
9 t5 [: x p1 o& v w:=17 |2 I, `' S6 {
end;8 I! O- d: U" @0 S/ b" h
return true;" t B" b1 E% ^9 C
end;; a) ]& i& T8 ~
next;
1 k7 V! u, B, j9 ~4 }' Q next;
* N( S2 C3 L* W* a$ e7 q next;
9 _: N7 y* h" d- `) N return false;
$ P% B- ]: @: ?$ {* V8 q9 Mend;, L w6 B) J9 [1 S# {
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
8 y) L. P/ s( \' } |
|