|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:: b$ q' x& R- i- v
(byref x1,y1,z1 : integer; part : object) : boolean0 F4 F! S! i; l- [* E6 E# q o9 N3 u
is
0 E4 U7 w+ w. z, B j+ c i,j,k,w : integer;2 a f$ L& F- V" e# Z7 M
do
/ `: j ]. t* J6 Y5 E. d& V for k := 1 to Crane.getStoreZDim loop
: d, w7 [, F% r$ b! e for i := Crane.getStoreXDim downto 1 loop$ u L( i( m% [; L
for j := 1 to Crane.getStoreYDim loop
" W0 L3 q+ u. J' E( R4 ?5 n3 G/ G if Crane.placeIsFree(i,j,k) then) D5 K3 k$ h g- n D W
x1 := i;& k3 ?$ k; c$ `
y1 := j;5 w, G8 I; [/ I
z1 := k;
" D% N. z. p0 H9 e0 E2 r6 {" } if Crane.placeIsFree(14,1,2) then0 N8 I$ G+ A+ ?" R. Q; C% ~/ A
w:=1. D: S1 b0 ~; {8 c" r
end;
( S0 d; ?6 t! S* f return true;
! V4 F: `" l5 }0 @( v end;
3 |7 h: ~7 i) q- o6 m next;
$ @- r2 J. E8 m next;
7 Y4 {: Z8 d; q5 `7 M" ` next;
% S+ Q0 \; B! E, \% F k return false;
0 t( t I4 k+ qend;8 `% ]8 a3 p) W2 g) x
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?1 y# `% C, I$ ]4 A8 a3 h# P
|
|