|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:( u8 P* z1 S6 R& f( I0 B
(byref x1,y1,z1 : integer; part : object) : boolean
* W& e9 l7 m5 B& T1 B; y4 pis# h9 H# z+ {0 y) M! R: u* a
i,j,k,w : integer;
9 D) `+ h) o+ c |4 Gdo
& M: ]/ M8 J, l4 X for k := 1 to Crane.getStoreZDim loop
5 h: p! g" p" c5 U! M for i := Crane.getStoreXDim downto 1 loop9 s- v9 Q! r9 k, |) ^. ^$ g
for j := 1 to Crane.getStoreYDim loop- ? Y8 r$ Y3 G6 G3 z7 s! X
if Crane.placeIsFree(i,j,k) then
& [+ `3 J# P1 f" x! M- V x1 := i;
: B! [) N6 \# }5 p y1 := j;# w1 U2 l) V- U: n$ }; C5 {/ K0 O3 T
z1 := k;3 O$ P: [; Y! Q$ D- O0 D7 d+ k4 W. W I0 t
if Crane.placeIsFree(14,1,2) then
: d" I; F) s* L$ Q- `; p" [ w:=1
, w; A @- X& h1 K; c end;
$ M' m6 r" u2 x9 U. a return true;( W3 [( C" z0 p0 B6 _1 k+ n5 W
end;0 P& L! p+ d! z5 F! B4 U R
next;+ v& E% j' }2 U+ X# t- T
next;
& _) c$ k, u7 b" h* B next;; E( o- g8 U: {; x! E
return false;6 M+ l$ ?9 r% h
end;; O" ?- v$ P; ]8 s' Q! W
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
/ I" l; r& W1 t" p |
|