|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:# D9 [" J p% ?
(byref x1,y1,z1 : integer; part : object) : boolean* U+ w# W( z- T8 o4 h
is! d$ H* O' W6 I5 d1 W! u5 a
i,j,k,w : integer;/ @5 @, w& ^' E/ Q
do
: a8 I4 M7 G# ]- j C* i; U; ` for k := 1 to Crane.getStoreZDim loop
% [( I1 x, ~- q for i := Crane.getStoreXDim downto 1 loop
0 |! T6 e- z1 f4 Q5 e for j := 1 to Crane.getStoreYDim loop
, p4 D( P4 r7 q if Crane.placeIsFree(i,j,k) then g0 D5 N C9 M i
x1 := i;
' o) k" M* x! S" y y1 := j;! u, Q) u" B# \# g& t4 i5 h( l1 `
z1 := k;
7 A+ J- m0 c9 w if Crane.placeIsFree(14,1,2) then; }7 B4 H. g1 m0 p% L
w:=1% Y6 X$ x' M1 D- z4 s
end;9 @2 S k# D! F/ h4 ~$ m$ z
return true;
/ T1 W c1 J) H2 o end;0 N% ?4 K9 N; p# h9 y- `
next;
7 ~% D0 \- l4 F9 r next;
R" K; |; c* G/ v+ Q1 ` next;& U& a1 |, w8 U! ~
return false;3 Z, w5 ?' Q; Q) y! `( K
end;
3 ~: c7 A q1 ?! w$ l 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
8 S# _. b# Y$ b# c6 g |
|