|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:( T/ B; X4 K5 B' I
(byref x1,y1,z1 : integer; part : object) : boolean
; i% z. A1 K0 k1 i7 {7 W" Iis f/ W( ]& x1 q
i,j,k,w : integer;9 a5 ]6 J9 H, v8 K+ F p) j1 o* i
do5 z, x- q' v Z8 W2 @
for k := 1 to Crane.getStoreZDim loop6 m4 g( @2 @/ t' G; e5 g5 C
for i := Crane.getStoreXDim downto 1 loop6 ^ u2 J* {2 |( J j1 |
for j := 1 to Crane.getStoreYDim loop
( g/ Q$ v: p2 |* {6 X5 ? if Crane.placeIsFree(i,j,k) then B0 ~$ W" o! [( I0 D* R; B
x1 := i;
u7 ]. i# ~& l, t y1 := j;4 a2 F* c2 @+ ~! P) k# u# X* t
z1 := k;5 a6 G( u3 Q; o
if Crane.placeIsFree(14,1,2) then
' ~& o' D, S' { w:=1
+ f7 D: g8 ^/ {" }8 I: P end;4 u- d* s5 q8 V- X
return true;
% u* ]2 n5 b% N/ X" E) F! F end;) K& V0 Q# c1 }
next;) l0 n! r; U, b5 `& i
next;0 f8 G" g; v1 O) v& X7 B
next;' O4 |# n) x$ u% S8 N& q( m) Q
return false;
2 q* p6 f7 O# N4 A% o: send;
' \" k: h6 D8 M0 C: ?# L. h 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
# a% h9 s6 C! O; k8 o |
|