|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
8 W9 I4 w6 H5 x5 R* k; I" z(byref x1,y1,z1 : integer; part : object) : boolean. U( L$ M2 _# u; y( g# v
is( |7 g# c/ v8 u! `4 `! N, K
i,j,k,w : integer;
6 O; Q! u8 t8 }9 ?, jdo6 j: V& T; ?0 n, i( O
for k := 1 to Crane.getStoreZDim loop
) ^' g) [; Y d; D2 D2 A5 h for i := Crane.getStoreXDim downto 1 loop
# a6 X7 y1 @0 B for j := 1 to Crane.getStoreYDim loop
1 h! o( l. H! `6 Y1 X if Crane.placeIsFree(i,j,k) then
! J* G% E$ ^5 v0 @2 v x1 := i;
# R6 a I. j0 k$ ~" @" t y1 := j;
$ T( L" N6 P' i8 ]4 d& } z1 := k;
6 E4 M8 p/ J7 [6 T if Crane.placeIsFree(14,1,2) then
: G; I: y1 J5 E w:=1; j- s: ?7 c$ }1 q8 I$ w8 c
end;
5 C2 D; I8 T$ \1 \: R return true;
; v' r# K% E s" \ end; U* A% T6 |& z# k* g
next;
/ @5 y9 h0 }) K. h; k: e next;" ]1 Z7 w. W( f+ o7 ]" U. w
next;% C3 J. Q; a- f# g3 J2 T f, }
return false;; D: |& L. ?- d* s/ J9 S6 E! T! ]6 ~1 @
end;, {! C8 C" d/ ]+ \( r% r8 B
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
. m/ V1 w6 [. r7 L |
|