|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:# O% x" U8 }* n0 S" M1 x. q) m8 H
(byref x1,y1,z1 : integer; part : object) : boolean: ~% Y2 e9 t& D% A; V1 q; `
is9 |, [2 G" K. H/ E, \% h4 K
i,j,k,w : integer;
& b# c8 q+ s& gdo
0 E. d3 u! c( h: W2 n7 b t for k := 1 to Crane.getStoreZDim loop
' r' o* ~2 \( H, a7 l for i := Crane.getStoreXDim downto 1 loop
. f# H1 G* I- P* ~- i/ m for j := 1 to Crane.getStoreYDim loop
2 A. P* J$ Z: X( v if Crane.placeIsFree(i,j,k) then0 z& I, [7 ?/ Y8 [
x1 := i;! t) o( K5 s8 T: u6 O- j
y1 := j;, p% S4 @: `5 z
z1 := k; A0 T) F L% u. k; l. [
if Crane.placeIsFree(14,1,2) then6 a8 t2 C; [- [+ {% m
w:=1
5 r% @) u( ^( [ end;
$ O0 B6 y/ j" | return true;0 p4 U' K I S& W# r
end;. t' d+ H$ f+ v# W4 R& T, R
next;
" O& R/ p6 [& D4 S- f+ s; Z9 \2 Y next;
/ @2 _: G7 p+ i; d" C' F& v$ a next;8 v; F/ w# T1 [8 P7 P6 P+ D" r
return false;
4 p2 O6 [& {: g' ]* Z4 H7 Rend;& r; x9 c$ v& O; w# ? }
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
; i. k7 m& @5 [1 V+ M6 X |
|