|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
/ `$ N8 Q4 H: C, o/ O( V(byref x1,y1,z1 : integer; part : object) : boolean* e' v" b" a- I
is! A1 {4 o5 C9 e6 [
i,j,k,w : integer;' F, e+ ^. q+ l! F* R6 O" T
do( y6 l" L8 P$ M
for k := 1 to Crane.getStoreZDim loop) W+ g# \: I% W" j
for i := Crane.getStoreXDim downto 1 loop: ^# H$ Y& x4 K6 O% _8 R Q; m
for j := 1 to Crane.getStoreYDim loop
5 ^/ h8 _$ r7 R: u# a) w( q& A if Crane.placeIsFree(i,j,k) then9 u4 r4 ]& N/ ] p& |* j
x1 := i;' T# J' d" g! `9 {, _
y1 := j;9 q& L+ }2 \6 t) p3 S2 Q3 @
z1 := k;
) i! r1 K, p3 n8 w0 J if Crane.placeIsFree(14,1,2) then9 A, A ~" G. s3 W
w:=1
6 k, a1 l* p( o8 e end;2 d4 R" `% w4 u
return true;
; N0 o9 A3 A3 u. F Y$ T end;; j- C) G& ~7 a' z" v
next;
" z0 P/ h6 I2 \* a) x& M9 r next;- _+ {1 K8 H; I7 e2 U0 ~& g
next;# _/ ~2 ^* a. N( l! ?
return false;
( t0 C4 m: ^" u6 g' I+ gend;
: U8 v8 o, Q3 |2 M' O# W& f0 E 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
+ K1 U" ~& {. H! p) m |
|