|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:% c' a) k4 }% E _% b: x
(byref x1,y1,z1 : integer; part : object) : boolean% O, F, p& z: B; R" ~4 o- @
is
0 \9 b$ ^" U; o5 h+ G i,j,k,w : integer;, J4 s$ T1 U- j, [6 x7 N; `4 M. T
do
& L; s t" c1 V for k := 1 to Crane.getStoreZDim loop1 O3 q$ ~/ V/ T7 T, R
for i := Crane.getStoreXDim downto 1 loop
2 Y" n6 z/ R/ V+ M% ^& k for j := 1 to Crane.getStoreYDim loop
- @& H. G" B" s3 w5 K6 t if Crane.placeIsFree(i,j,k) then2 |7 r3 K- u# {8 }# @
x1 := i;2 i& `- X6 L w% a9 e
y1 := j;. c5 e( ~! d; P4 y
z1 := k;" g3 `. H! ^+ W; n" M# E3 H$ {
if Crane.placeIsFree(14,1,2) then
: u z6 c6 [# {& U# ` w:=1
2 X& f- F/ w- w2 Q8 A end;8 B7 Y! ]1 K0 s4 u, y5 ^
return true;
2 S& e: B7 o/ G5 E" d end;7 T/ {" l: U9 W8 g, O2 Q# j- P
next;. `7 O4 y }! v
next;& [$ [" ~8 p3 a
next;6 Y( j. [5 E; F6 h! }
return false;
# t8 V& J& i k3 p2 {& [end;! b3 E4 x! m, U" M
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?' L% Q/ f6 z- a! Z9 r
|
|