|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:1 k% M- \4 {# O U
(byref x1,y1,z1 : integer; part : object) : boolean
7 e8 q3 n# B/ T* ~& n* F7 zis
& A2 _0 r7 G% R" T, a _ i,j,k,w : integer;& s) I) |7 w" ?: o [
do3 N& `1 {& z% t* h
for k := 1 to Crane.getStoreZDim loop
9 Y0 J! ~3 B( A! Z- d for i := Crane.getStoreXDim downto 1 loop
, E2 M" B) C8 S, y8 D! G for j := 1 to Crane.getStoreYDim loop& k) v2 R" l4 f
if Crane.placeIsFree(i,j,k) then) Y" S. a5 u2 W) n! [7 x3 M
x1 := i;
) j9 j- H9 O+ j' x# R y1 := j;2 D5 T0 P- d: ^
z1 := k;. _" u' P1 }. A7 C' M" n
if Crane.placeIsFree(14,1,2) then9 k) G5 y8 z9 t9 ?
w:=1- ^! u8 @3 s# F: C$ h" m
end;: N% c& w, {+ ]* ]
return true; m# r- S/ D8 g& n
end;
; g2 v E# N6 i6 v- n next;
+ g4 {% b9 L1 u$ Y next;. ?/ P% Y/ X; E$ X3 ^( ]( c. P( }
next;" O+ g4 E2 h) _3 B4 i
return false;: u- E# T" B; W/ e$ c( N2 [( m n
end;2 V7 z- s) h$ A Z
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
, k5 Y0 p3 c/ ^ v" J- X! E |
|