|  | 
 
| 请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:: n4 I: y) w( j( f$ x) B6 w' o4 a (byref x1,y1,z1 : integer; part : object) : boolean( p, V' r7 L# ~  n. o, ?9 I- i
 is/ j" `4 d2 ^! L. g- r
 i,j,k,w : integer;" D# T$ I5 r$ C( D! |
 do2 a# C3 e7 x2 u' ?& k
 for k := 1 to Crane.getStoreZDim loop$ ]5 r  C/ t: k( J
 for i := Crane.getStoreXDim downto 1 loop
 0 i# p$ F) S/ L/ A/ \, W                        for j := 1 to Crane.getStoreYDim  loop2 l- X3 I- Z: d- L/ k
 if Crane.placeIsFree(i,j,k) then
 . i7 a6 ~' u. R! c6 b                                        x1 := i;& _% g/ m  t1 a3 @7 b2 J
 y1 := j;
 ) L3 p% U  @7 [  ]2 \, Y& O3 c& ]                                        z1 := k;
 9 L. t5 m% Y5 l, B5 d                                        if Crane.placeIsFree(14,1,2) then6 b4 F6 I: k2 y" Y4 R' ]
 w:=1
 . n) D7 Y" I/ n1 @                                        end;
 1 e- V0 \" E. v6 i$ g( b3 H& M                                        return true;9 k- j3 K8 K/ |. n
 end;6 e) t  W: ?# y4 n7 [
 next;
 1 I, b5 L% L2 x1 p+ \                next;, C+ N: Z  }$ N, J- K1 o- x
 next;/ Q$ t9 ]) W7 p* Y8 J5 y
 return false;8 K$ l( O* o& }
 end;* j5 M. o7 y4 v4 p
 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
 / W2 B* I1 I! U1 z  f" N# E8 `
 | 
 |