|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:- E, M3 d5 `5 H% f# j T) s
(byref x1,y1,z1 : integer; part : object) : boolean
# X" i/ s0 O1 }3 n Pis; f `! z0 U% N7 z; a
i,j,k,w : integer;5 F4 }# i+ C" T
do
- [( J/ e9 ~; C; Y for k := 1 to Crane.getStoreZDim loop
- I$ B1 n) U4 V8 ? for i := Crane.getStoreXDim downto 1 loop0 \% F% j7 g1 Y8 ?- `
for j := 1 to Crane.getStoreYDim loop. n% q3 _" a! L
if Crane.placeIsFree(i,j,k) then+ I) V$ K; T$ ^ i/ C, {5 @6 R, U
x1 := i;" p; F" Q! O: X8 h! K; S
y1 := j;$ d( { R% N; c. l. V
z1 := k;( h) G8 P+ I2 m( L7 r+ {) i
if Crane.placeIsFree(14,1,2) then
- C W0 b, Q4 T6 x+ c w:=1
+ j' s+ F+ _: o, f3 {0 s; a6 k end;
' A+ w7 c7 D! j5 T return true;, D4 h) F) H9 M- F, S) m
end;
4 ~* \6 Y/ I2 ^3 \ \( l" C3 r+ X& T next;
6 K! c$ @7 Y! c' K# R5 T0 a next;
. X( Y% e4 T$ T" K- G1 n; i8 Y next;6 Y7 z7 e( Q l- B
return false;
# f, L# q) N- jend;5 P4 d5 N1 j! c& H! ?, p
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?9 U6 E3 T$ e1 g' a/ C
|
|