|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
2 H; F2 o, }6 G- a/ d( ~(byref x1,y1,z1 : integer; part : object) : boolean
' V8 v, n3 m' s& ~1 z" c- J8 Uis
5 z' Z/ f3 H. c: O- o i,j,k,w : integer;
2 |) G" t. [7 w* b* [6 }8 vdo
9 w( S7 b4 V; M% o" Y) \6 D for k := 1 to Crane.getStoreZDim loop
# N$ k% p! l' x for i := Crane.getStoreXDim downto 1 loop( ~ T# y6 \1 r2 n2 ?- c
for j := 1 to Crane.getStoreYDim loop
* n) @, z# } I* [* { if Crane.placeIsFree(i,j,k) then" u: V+ \* g# {0 U. ~
x1 := i;2 K' w4 r* a) f' @
y1 := j;
+ ~2 U: q& s9 y7 P z1 := k;
( e1 B h# |* {% j5 X# t! D if Crane.placeIsFree(14,1,2) then" {4 W5 U$ b/ p7 S0 s3 I' G9 }" E
w:=1
5 n' W8 }; l# F; q end;3 D4 E6 n3 P8 `- t
return true;
G q: A6 a6 p* u" t' @ end;
. e( D6 b! T; g. x! ]8 ` next;
c) p9 H2 y4 e3 U F/ L next;
7 |) }; W( S* ^7 a7 f$ f: b next;3 y; Z6 {0 K; U" r* [3 b3 [
return false;
" i7 y/ [ ]9 xend;$ I/ |' h8 J: P+ t
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
6 X$ m) D& S# s3 S: C/ ~. O4 C2 { |
|