|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
) {/ w3 k6 I3 S3 n- Z" ], A7 @(byref x1,y1,z1 : integer; part : object) : boolean
8 S( i& ^1 @' C6 T6 Y, Bis! C$ p3 G1 J1 G8 | F
i,j,k,w : integer;
8 x1 `3 f6 C! C3 V( t j3 ido
+ C- ~8 h3 Q: G/ I5 w1 B$ W for k := 1 to Crane.getStoreZDim loop! B; |% ?& L2 U' m' o6 e
for i := Crane.getStoreXDim downto 1 loop% _. R6 e" j, l
for j := 1 to Crane.getStoreYDim loop
; t; C* Y$ M" S0 f: ] if Crane.placeIsFree(i,j,k) then
$ h5 \! ?' i' l6 `% m- a x1 := i;
8 N7 _! C# b) \7 Q! _9 U y1 := j;
l: y# @4 T$ R8 g- O1 n z1 := k;
* Q \8 w* ~! F, ?0 s7 |$ ?2 D) t if Crane.placeIsFree(14,1,2) then
: {0 S* }9 P& G* U w:=1
' F2 G+ X+ f' b& ? end;% Y, q; S1 J- K; z
return true;9 e" j% Y' n9 g0 @# K' u
end;+ p- c% R C$ e5 n$ ^
next;5 b& O- e6 h' {$ M6 ^
next;
$ E: h+ Y/ ^2 X7 i next;3 V9 P7 U' s f
return false;
, e( E& H. c) R& z3 O) J/ Cend;" M3 ^/ c2 E; p0 C3 P# C* K+ o
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
; X, X8 o0 |) D/ ^9 _/ R" ?6 ^ |
|