|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
Q) a0 i1 O0 j2 ^4 S(byref x1,y1,z1 : integer; part : object) : boolean
D. C: j6 P4 mis8 Y3 P9 t- V/ J; s
i,j,k,w : integer;
9 a: ^% p3 x; U# H" m, ido
; O6 x$ s- p9 \, F; e. s5 q for k := 1 to Crane.getStoreZDim loop9 H' }$ D% L, i& y, W; [1 h
for i := Crane.getStoreXDim downto 1 loop" g u2 E5 s# ]! J# ~9 ~# f$ c, i
for j := 1 to Crane.getStoreYDim loop
: K1 }9 \& K% s J5 R if Crane.placeIsFree(i,j,k) then: c7 D$ ^5 b# \$ q
x1 := i;4 | {$ l/ H% ?" t4 P; Y3 I3 l# Z
y1 := j;' M( d \* d* E; @) K
z1 := k;* b7 |3 V% f6 o5 U/ H9 O
if Crane.placeIsFree(14,1,2) then r$ r0 L: W; K2 w: \
w:=1, r. |2 V L( q& M& y Z- d
end;8 u( X8 m' p* }* U# h6 w
return true;* O9 M+ ]; Z. h9 J
end;
3 Z0 F/ D, E i7 r2 _0 V- J% v next;: A* G; t* g' g7 c
next;$ T2 e) o" t' `
next;5 @* h7 k: X/ X2 k6 `2 Y
return false;
' Q& D. p5 Y' p: H. h; C" i) nend;3 o" l9 p9 q) ]; Q7 v v( p& @6 A
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
: M1 ~' @1 Q9 x$ t3 q" v |
|