|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为: V' q1 w3 X! R1 A1 `
(byref x1,y1,z1 : integer; part : object) : boolean
$ X4 |9 x; ~& V1 U" I/ Tis6 C4 V5 S/ e, r
i,j,k,w : integer;6 C; U* c5 W5 X( q' J% N0 ]1 I; K
do
6 ] X. G7 c* h5 R2 e+ |3 H4 P# u for k := 1 to Crane.getStoreZDim loop
! K- U) Y( n6 G for i := Crane.getStoreXDim downto 1 loop
# H( y9 j+ d1 N% a9 e" p6 o' l4 f for j := 1 to Crane.getStoreYDim loop1 i% x: b5 X8 E
if Crane.placeIsFree(i,j,k) then
: y" ?5 e7 m p: x8 r) ?6 U; x9 k' k x1 := i;
& L8 o% p1 J5 _% F @8 e y1 := j;9 O, E, i6 F/ i1 ]$ }9 v
z1 := k;; j4 S- p' D. G
if Crane.placeIsFree(14,1,2) then
* q% Y3 Y$ g# R, x$ H8 n w:=1& M/ w3 F& s. _. E7 X! P4 H8 t
end;
3 |& W% M8 f0 U, w return true;
6 G, A W. l0 o2 o# U# [( _: V end;; ?( o& I# b `* c/ e
next;6 `$ f' ?# X" _. w8 v+ n( H6 {- r
next;
3 R; V, H# E6 t0 ? next; F2 R# M% F( N' n
return false;0 f4 l( {+ B( p9 z! M1 F8 p- l
end;/ T S7 o% ]/ U
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?% D' D B5 J0 Z% D
|
|