|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:) i- @, h6 c8 x0 H* a& p
(byref x1,y1,z1 : integer; part : object) : boolean! c* `# j7 k; E% f8 [0 E( A
is) B1 _4 M3 D( {# J( O
i,j,k,w : integer;2 k) R" r$ y3 A% ~% {9 Z# E
do' g- l W! H! [9 M7 L! C& D
for k := 1 to Crane.getStoreZDim loop
% l# i6 I# @$ m, v for i := Crane.getStoreXDim downto 1 loop
9 M& {" H& R& R6 B9 u4 n7 y" H for j := 1 to Crane.getStoreYDim loop) p) c0 i8 t3 t3 H" L/ W" Z
if Crane.placeIsFree(i,j,k) then
. H' Y( q* D# p' ~' j7 g# D4 I x1 := i;
* l4 S6 G% l1 V, @6 W; O y1 := j;
$ O) |6 b: P7 ^4 J5 C z1 := k;
, R) C( V$ f/ V7 @! o2 M/ I2 z1 k if Crane.placeIsFree(14,1,2) then* x( u# p* @1 C& B( y6 b" S
w:=1# S3 T. i4 }5 @, I, w3 Y
end;- ]7 d3 V9 h3 ?' H: u) S
return true;
; [7 @# ~8 o- J3 c) J end;
0 h" z' w, G+ F+ q, L8 u next;+ Z/ V4 o$ v1 }9 F0 ]5 z
next;7 b9 x' h8 [; M& U5 p) Q5 _
next;- D8 @% m) N2 M
return false;; ]1 |5 q. s& s9 J. P% l2 v
end;
. u H7 f" L. o k! b/ A5 H 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?3 ~0 v7 n- l+ [7 C) N
|
|