|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
+ M7 r6 l* T" L* J" V(byref x1,y1,z1 : integer; part : object) : boolean
5 c& @* n! i, Xis% d( s6 W" y8 K8 g/ C$ k
i,j,k,w : integer;# K8 o7 l9 t" q1 m
do' U$ o& c$ ?' W; b2 l( a: b
for k := 1 to Crane.getStoreZDim loop
. b( U# H4 M3 U- `+ N g+ \2 n for i := Crane.getStoreXDim downto 1 loop* Q, @( ?% B+ s7 ]8 O, m
for j := 1 to Crane.getStoreYDim loop5 Z: J' _% y) X0 t3 t
if Crane.placeIsFree(i,j,k) then' W* h. _1 z1 p. ?9 I0 G" [
x1 := i;$ R9 D8 S- m* g1 p* \6 H
y1 := j;; o9 }- ^0 l. p4 r
z1 := k;
8 m9 Z P5 x$ C, _) K if Crane.placeIsFree(14,1,2) then' {1 A' w- i; {# Y$ c
w:=1
% R+ z9 k& k* P6 l end;
4 p, P2 Q3 v9 g2 v# q return true;5 Q2 G* @. R; W4 R( N- ` D
end;
) q5 F) g* {' J+ \ next;: m. u: y8 u7 |7 X) b3 [
next;$ L! c1 S1 i+ D& N1 t
next;: e/ l- J1 ~) N- l6 Z
return false;
6 j! u9 F6 T# `( D. R# p5 Send;
: V/ ^1 D: u8 G9 }+ m: f 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?2 B ?$ I% }( t) i
|
|