|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
' x9 d6 W+ `$ D(byref x1,y1,z1 : integer; part : object) : boolean
. k, u1 X+ l( d8 P& Xis
, g4 A& I$ k# M% C i,j,k,w : integer;
& {$ V( B4 ?8 _; t5 Z7 ]5 jdo( d4 t# I2 Q; @% c0 B
for k := 1 to Crane.getStoreZDim loop$ T/ J. T5 l. Y6 M/ ^7 z
for i := Crane.getStoreXDim downto 1 loop
1 {" M% M4 l. r% t7 ~ for j := 1 to Crane.getStoreYDim loop
8 l! y$ b+ u% Y! l# C if Crane.placeIsFree(i,j,k) then8 E7 u/ N' g# y! k
x1 := i;
9 }! E# d% Q' q7 f0 z( }: j( D3 ]. @ y1 := j;
& m: o# o; l; Y: ?& M# B8 i$ o z1 := k;
" B0 a" a% g, u- t+ ^* f% t2 I if Crane.placeIsFree(14,1,2) then
4 i" a0 m; L# v3 R$ i( ?( q w:=1
) G$ P; [# K- T end;! {7 k( [; `* \% H" v
return true;
0 s4 h9 ^1 h- s$ ^8 Q end;
" @# S+ o& ]- w1 G- \ next;
0 z: F" W* H7 o& L6 u next;* `. h7 E0 f/ E* u8 x7 x
next;
% X7 ?" F% J Q* E S8 ] return false;' `- E _6 p: O6 b) _; E- N4 K
end;9 U' l* U: ~9 f( a( k! V$ M. p
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?9 d" i/ B" C4 X
|
|