|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为: p+ h, z7 W1 e" c1 n! G- c
(byref x1,y1,z1 : integer; part : object) : boolean
5 `' }! n. l' V" E6 {) kis
7 A- v8 ^$ f1 b i,j,k,w : integer;" e y2 r$ t; j# L) _5 Y, v$ \" C
do# V( m+ G3 S5 u0 Q1 G
for k := 1 to Crane.getStoreZDim loop" r( M( F) b4 f. O
for i := Crane.getStoreXDim downto 1 loop
, a" S7 t& M0 o& R- S7 c B% q for j := 1 to Crane.getStoreYDim loop: E" S) N8 C( L/ |% G! U) \3 s
if Crane.placeIsFree(i,j,k) then
b! \% s8 o9 V x1 := i;* P3 ^' l# o" Q4 P1 Q) J5 X2 F
y1 := j;, R% F! a' G! U
z1 := k;( W$ T! ~" ]+ J2 C* z, ^1 }* e
if Crane.placeIsFree(14,1,2) then
6 E" I1 z# x, Z( `' ~ w:=1
' j0 D1 j& A; B1 h end;& W N. C4 [ s0 j: |/ c/ A0 N( \
return true;$ a+ w2 v" A2 B: j
end;* B3 [, f3 M; E Y3 O9 @
next;4 Z& u8 }! \8 H6 d% H
next;
6 h6 A" t0 {1 T/ i8 h* q! W next;( J4 J) ?* f% {5 a9 B/ J4 Y+ a1 Z5 {
return false;, k. v( Y) l, w3 p$ ?
end;
0 k& i1 G4 n" z% o2 Y8 S 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
# u" g1 D( g( e8 B$ J, S+ X |
|