|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
; b. F5 ?# `: _3 d- B r(byref x1,y1,z1 : integer; part : object) : boolean
' { x* g3 s5 R+ p' o* [; Bis* @* k+ q* X- w6 Y, o8 z4 s
i,j,k,w : integer;% e4 K5 I9 u6 y6 |/ I3 ~/ `
do; Y6 Z) k* P3 g% E$ o! E
for k := 1 to Crane.getStoreZDim loop1 Q" `7 D6 b' W: h) d7 U
for i := Crane.getStoreXDim downto 1 loop: ~* o4 o+ G+ k8 c4 y
for j := 1 to Crane.getStoreYDim loop
6 v) Q1 t+ ^7 p' p9 _ if Crane.placeIsFree(i,j,k) then- J, J6 D3 [: ~
x1 := i;
" p2 l: ?3 T( m y1 := j;+ S* [5 ^( w* J9 b
z1 := k;
; y! B7 b0 V# U& h$ a; H. K if Crane.placeIsFree(14,1,2) then* x$ y+ C5 Q4 ~: T% e- U1 J( x) \
w:=19 v h8 a/ C/ `. ?, ]: p4 r
end;
9 L3 }; s7 i1 T+ Y9 C) P return true;+ J! s8 B: ?2 n" s. ~4 h$ I8 w
end;& L- [6 h/ h; j. j! M0 `
next;
3 u" t; o7 i4 a next;
b4 N5 \3 E8 C z4 P next;/ K1 h# G* T B: ], w6 I
return false;
3 k! } t3 i0 C) z" K- Pend;
$ a1 @) a% \1 b% R( n- q( o 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
3 Y! h, a7 Z6 x# w$ _, ] |
|