|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
. s+ _5 [! d* @0 v W, E7 b(byref x1,y1,z1 : integer; part : object) : boolean0 p0 q6 F4 f+ K7 ]
is/ x, k2 N8 ?$ h/ u0 h; U8 M
i,j,k,w : integer;
, g5 m' o7 B+ v$ a( H8 ^do
$ ?) d9 x; H- P+ c8 }3 w for k := 1 to Crane.getStoreZDim loop
7 l* q( ^; |& Q for i := Crane.getStoreXDim downto 1 loop
9 l, |4 }- R3 D' E3 d- c: b# m for j := 1 to Crane.getStoreYDim loop
8 g5 R Y7 r @$ v+ V if Crane.placeIsFree(i,j,k) then4 R7 l+ d' b( Z. k
x1 := i;) n/ E# p, k! o$ {9 r( U9 R
y1 := j;
; {- |+ H' s# ?; \! K( f- x: R z1 := k;$ I( D: @: u0 x1 [
if Crane.placeIsFree(14,1,2) then
0 C$ m( `4 J1 b w:=1
8 W8 Y2 C6 m4 P1 u: `7 V4 R! z end;
$ L6 k, p/ \8 A' N0 _ return true;2 c( X P1 R1 c$ @9 R
end;# R2 U5 z; V) J' S1 ~, k# n
next; @0 k- D& L3 a3 i$ u. z
next;8 {. r/ H, B; T* y, G9 @
next;
; U* {$ I9 S) q. Z return false;" F! {8 w8 C. A, x: x! q* l
end;
, ]" c( i7 D0 O4 A/ r 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?0 \5 D8 i- b) Q( ^3 ^' O
|
|