|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:) b$ }* a, H/ M3 C. g9 m2 ]
(byref x1,y1,z1 : integer; part : object) : boolean
# q4 G6 J8 C3 |+ W3 m Xis2 d, w) F3 x/ H9 h9 [
i,j,k,w : integer;4 L6 S* d1 \/ Q! ^! ?
do
$ B! |# M% D. q( }, f: Q( z! ^ for k := 1 to Crane.getStoreZDim loop
8 J) p5 z; M: [( } for i := Crane.getStoreXDim downto 1 loop, Y: m$ t% t( `6 f* G. b/ f5 E& b
for j := 1 to Crane.getStoreYDim loop
6 W* U+ V( d4 o. s4 I if Crane.placeIsFree(i,j,k) then2 K$ [& F% i9 l; e1 N, m
x1 := i;
& G. e& e' f, m y1 := j;
: m- J) \2 c* Z* r. a z1 := k; w$ n' v/ m5 a3 a# n, \
if Crane.placeIsFree(14,1,2) then
2 j9 g' U: Q0 D& P! R w:=1
y4 e+ r/ v7 o0 r6 W end;+ l7 W j/ h2 K( o+ Z" C* J ^6 z
return true;
7 N; ~7 H2 T) H& x8 \2 | end;
) P& \: B) w3 q4 H" ]; T8 q next;& [0 [: x* H! _1 k
next;
& [( b b. W$ O5 M* ]: l next;; i2 p0 l$ E/ i
return false;" }- k( `9 d! A/ A6 a! d5 s7 b; l
end;; w/ P$ w0 j1 \- H
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
) {( o" u' A1 f |
|