|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
w H s' S8 O% Z v/ W(byref x1,y1,z1 : integer; part : object) : boolean
# P9 l1 X' M, N$ Y% g" ]/ L4 h' mis! _" j3 U2 N$ Y
i,j,k,w : integer;- b4 S( ]8 x8 ]
do' Q6 @' j6 t- a# _( g9 Q
for k := 1 to Crane.getStoreZDim loop
5 l& v) \9 f- _9 w# @ for i := Crane.getStoreXDim downto 1 loop1 l# [. S* Z& R5 Q0 d) K
for j := 1 to Crane.getStoreYDim loop
" W( U; ~0 {# [ if Crane.placeIsFree(i,j,k) then
& F! q: {- X+ c2 @9 s: o. F x1 := i;
" M) T; {% B- J7 `4 e9 G# T y1 := j;
9 w8 H4 t# d5 Y1 v8 K" B2 q z1 := k;
) @, v1 A2 _; _0 i5 r if Crane.placeIsFree(14,1,2) then- h! ~; v' u0 y& \4 {9 A# ?
w:=1/ Y8 P- m A' S2 c* m
end;; P* E- w# K I) C" r, a: r9 r
return true;8 n& W2 z! ?% J5 N6 R
end;
1 _( O! y$ r* L/ s ?! K next;
/ Z7 N( q9 B4 |' B next;% ?0 m+ E8 C5 v, F& U; d
next;. r5 h% r, X0 P8 |; L
return false;
9 ^: Y& V4 m% ~, ]8 vend;8 B5 x9 U0 w7 i8 H/ k* q0 j% p) m. w
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
, T: h6 I* T* B# h! C1 u |
|