|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
, \2 x" [* b3 l(byref x1,y1,z1 : integer; part : object) : boolean
: k e- u: J1 [) ?is
. g7 s* m- Y6 l( c+ n' j) K) J i,j,k,w : integer;
/ T( [8 G9 ?: q; _4 k1 h; Gdo
% p. I/ ~% N y W3 R1 \ for k := 1 to Crane.getStoreZDim loop* j- X8 v) G1 c) z( ], v& r* W4 g
for i := Crane.getStoreXDim downto 1 loop
* `0 {/ b8 y$ a6 A; ^" ^$ Y7 [3 ~ for j := 1 to Crane.getStoreYDim loop" A( d5 r8 I9 F& f& A: I( T; u
if Crane.placeIsFree(i,j,k) then
0 X5 {/ V4 }( C) q" }- ]7 r x1 := i;
$ T1 V) f, E! q4 t E* M/ H) m: n y1 := j;
* w- J& C" T8 P$ R& Z6 } q! Z z1 := k;
! v w3 ^2 Z/ I* D# H- F) |2 w( ~' b+ { if Crane.placeIsFree(14,1,2) then2 f( M$ g$ \: t
w:=1
1 q: y8 ]/ c+ ~! s5 c end;
6 M9 i+ l7 I+ ` return true;
; R. @# z. R O0 h/ q. U5 g7 V end;. ]4 `6 |" E' x- `- q {* B
next;
- b- _2 U; M* W2 X next;6 ?/ g- s; d, Z+ P2 Y' u ^
next;7 c8 |5 ^4 M8 v% h, q
return false;
* H* j; D1 [% Y6 qend;* ~7 @9 X9 k9 X3 Q' T; ]2 n" X
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?5 h3 y7 J* h9 w- w
|
|