|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
' M; T' a$ R8 _' L9 ^6 n(byref x1,y1,z1 : integer; part : object) : boolean
4 K0 D# F) @& j) gis( R. H T9 a; ~ k _
i,j,k,w : integer;0 ^. F1 ]. b4 i% h
do: ~7 m. V( u3 S, c; j4 N& O
for k := 1 to Crane.getStoreZDim loop1 z5 S7 V% N/ y7 e& ^2 q2 J
for i := Crane.getStoreXDim downto 1 loop
* X1 }" F/ p0 _: z' t9 I8 L for j := 1 to Crane.getStoreYDim loop0 n6 R$ R# |7 l) q9 Y& ]' A+ _
if Crane.placeIsFree(i,j,k) then
0 }+ {1 K V o; h* @) W, d x1 := i;8 ]/ u4 t9 r+ O- h, U# o# y
y1 := j;2 a% p o$ X. v M
z1 := k;9 {& p$ |8 g( M* |: R1 }4 d9 G
if Crane.placeIsFree(14,1,2) then
3 s0 t8 F& l' q0 S$ f w:=13 U/ e3 E% ~% J6 T
end;2 G) k( r7 p) c3 H( }
return true;
3 Q. d( v1 o; j. m z. o end;: \/ I- v. S: k0 V* S' g+ a2 h
next;5 d3 c* v( |: H* V* ^/ ?
next;
& h* T. h! J4 F6 }! A4 r Y4 X: W$ u% L next;6 z. {2 X2 T# Y0 L6 J! u4 s" Z
return false;
* {+ {$ B; U1 O' l5 k0 }- c; Xend;
, t" D9 k9 s J8 d7 F 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
8 l+ e5 x8 o3 V1 w8 Y |
|