|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:/ R- X) N9 g8 k, h: ?- b& E
(byref x1,y1,z1 : integer; part : object) : boolean
% Q4 a6 s% w6 ^! ?( \9 ~is( Y- D- B1 h0 M2 s) r5 d- |
i,j,k,w : integer;6 s; U/ ]; V) r* {4 c
do) ~, W* u# `7 ?8 J7 F) T
for k := 1 to Crane.getStoreZDim loop4 t* Y9 q/ o# O
for i := Crane.getStoreXDim downto 1 loop
- n$ y+ M& L& Y u for j := 1 to Crane.getStoreYDim loop
3 ?4 U" p- r/ n if Crane.placeIsFree(i,j,k) then) {# Y7 Q. M1 U
x1 := i;' N+ r. n1 o y% x' N6 v
y1 := j;
8 y( g! Z4 C1 o8 ~! y4 _0 } z1 := k;
/ l! Q9 T1 h% D: F) g if Crane.placeIsFree(14,1,2) then7 [* k# _9 i& n6 E4 W8 y; K6 W6 t6 o0 M
w:=1
4 e L# Y, l" q- K+ ^9 |6 v1 ` end;4 a5 F! M) h; A0 J4 I
return true;
7 c7 V$ b) H) Z end;7 T0 Z. V* z# g2 E' w
next;
7 d- C! ]2 }: @ next;( r C, g# {( A# g, ~3 @/ z/ h
next;" u* y1 L7 N' w( q+ l
return false;& h/ R( y, E; x0 h2 Y. c6 Y4 [7 i
end;
+ }: F% {- o+ Q# A" H3 b 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
: s v* @% F" i* ~ |
|