|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:7 ?: p( ? Y' y% t% a
(byref x1,y1,z1 : integer; part : object) : boolean
) k u8 V& f6 X1 Ais
( k6 D: v- o7 ?; ~ i,j,k,w : integer;
( T& g+ k5 Q6 [do
) j$ _" t3 x4 w for k := 1 to Crane.getStoreZDim loop
: J! W0 k7 O; m" q% E5 {6 l! m for i := Crane.getStoreXDim downto 1 loop9 d' ?$ ~8 x+ H* n0 q1 C- S5 {; e
for j := 1 to Crane.getStoreYDim loop
. O4 N4 r9 t: t1 u- G! P if Crane.placeIsFree(i,j,k) then
* y# W% a3 s: o: P. i x1 := i;0 ^2 Z' p( s9 G" X$ b: @
y1 := j;
7 S% e) z& m# W( o. x1 X. w6 v$ N2 d z1 := k;4 C6 S+ j+ A) G7 L
if Crane.placeIsFree(14,1,2) then
6 h8 i. d: U, z2 X; W: ^ w:=1( C' ~" `' l/ G5 _
end;
' l- D5 _2 s0 s7 B return true; b1 Y5 Z6 R: k1 u& h/ H5 t- a2 @
end;6 ?5 ?# b2 }$ H0 H, c- b
next;: e' e- X# w( n8 |) ^0 c% x
next;) }2 a/ @5 S% g! [5 i
next;
3 |- m- Y5 R% i4 h0 K return false;% S( D; p6 \4 b
end;
' [! F4 T# O6 X( _' E2 b/ k% U 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?* @! E6 {- O- v, q/ m, s" z1 c
|
|