|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
8 f, |. w% B! r& Q2 v( Y(byref x1,y1,z1 : integer; part : object) : boolean
. g& J8 @2 \( _/ |9 \is/ \7 }- }1 j& ~5 P
i,j,k,w : integer;4 b; u9 B0 z# Y- }; \
do! D+ f" O3 d7 k |0 I# }
for k := 1 to Crane.getStoreZDim loop
4 P `8 i# R: e2 T A J; b for i := Crane.getStoreXDim downto 1 loop
. b; c2 Y0 N4 s, P' J& t for j := 1 to Crane.getStoreYDim loop
. X9 m6 I2 E$ l' F0 l i: _ if Crane.placeIsFree(i,j,k) then, s- r. P( I& d) ~ Z3 G% }
x1 := i;0 \& k$ v* j( {- ]/ \5 [: |
y1 := j;
0 ^' t. Q8 W$ j/ z& l z1 := k;+ o3 _' E. Z) @$ A: C: J6 i
if Crane.placeIsFree(14,1,2) then
2 {# ~) ^6 k4 D9 R, O w:=1& t1 ^" M8 e: ]
end;( J* `8 B# v, X2 x9 H# F. h' |
return true;
/ a2 }/ z# f+ H8 X) S end;
J1 W; s& j$ ?0 g' u' L# d next;
9 z4 |7 @. K4 S9 Z' M/ @- K next;
" D! |6 G, S0 z5 [' F next;
" Y, _2 k/ w/ \& m. G6 { return false;+ t6 {$ w. ? H9 D
end;
- t+ M# `' D Z: a) b% G2 Q 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
( D# I# s4 N: h9 p- L& i. f. S- v |
|