|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:. e; T% `+ `2 s k
(byref x1,y1,z1 : integer; part : object) : boolean$ y5 d! r' @( l b9 d, r
is. V3 Z" f0 H( T( O- C0 o
i,j,k,w : integer;7 _2 O3 B( N# c+ @+ a+ c0 E7 _* i
do
3 y0 e5 v9 ^. x% f' B+ ?- H! x! y; X for k := 1 to Crane.getStoreZDim loop
9 g3 |: V' v. D4 d& q for i := Crane.getStoreXDim downto 1 loop
: M6 B5 m6 N/ ~8 j b for j := 1 to Crane.getStoreYDim loop$ D; p y4 `3 {$ k1 ?8 t2 l! G6 p' a
if Crane.placeIsFree(i,j,k) then' n3 h2 d5 s4 G+ _& y1 q
x1 := i;
+ @% {& P- b. d0 H6 a4 T# d y1 := j;, n' E ]% u& u/ O$ B9 Q* [+ C
z1 := k;
3 E3 J: D; O5 z8 }7 { if Crane.placeIsFree(14,1,2) then8 d2 H5 Y$ j# x! n, X1 K
w:=1
/ p9 c3 [- L) n: H, a/ H end;
1 [/ ~2 d& t0 N* r3 T6 l' } return true;7 m7 L g( L- l" C: j9 l) |
end;
$ @3 o" k$ `# ~* U& ?6 Z$ | next;7 n3 `& |8 ~ b) M
next;8 B; B6 ^1 A4 Q, {. h9 u
next;
+ h# r& p7 ~* U5 E/ c! ]5 z3 n return false;
: X9 K4 T" ~+ B% S iend;% ]* i) S0 b# |5 q" o) E8 j
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
" `: U7 \/ e/ j6 Y: s1 } |
|