|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:* y& S: d8 t" l y. c6 N+ d
(byref x1,y1,z1 : integer; part : object) : boolean, h1 x& C Z4 o% c* t8 \
is; v% r8 Y+ \% h% u
i,j,k,w : integer; K4 S' \1 _( b, b, N8 r/ x
do
1 {3 K: ^; r2 M for k := 1 to Crane.getStoreZDim loop* U$ ]& o: E- {# Q' o* i, I+ P
for i := Crane.getStoreXDim downto 1 loop
) \; o9 o" O. c! O- z, Z* T! J for j := 1 to Crane.getStoreYDim loop
0 P' c; g* m# t: f8 p if Crane.placeIsFree(i,j,k) then( I) P3 ^( y0 p$ \" Z9 R
x1 := i;
; @! B" q1 C8 ~ y1 := j;
. H. G7 w0 }# ~+ K) e z1 := k;- A) ?# X* |* L3 d1 K
if Crane.placeIsFree(14,1,2) then. X: e5 S0 P9 I% a' A! {
w:=1% @( P2 E6 I) }% I2 w, ~
end;) c6 o* b7 A2 j9 H8 h1 @4 z% R
return true;; R) d4 V9 w C. f0 O
end;# ?3 A8 m0 u: l: \, {9 H
next;
# u3 N" H& }8 A7 x7 K { next;
. F* e8 o4 d" M3 n2 ?) K next;
: j+ i0 Q8 w5 v' j( f7 t return false;- ~ Q! [" x. [. \3 G8 R z% z
end;
: z2 f! o* K; E, z 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
. P4 K& T$ j: \( A' G) H3 A |
|