|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
. J9 c3 ~$ d. o8 i(byref x1,y1,z1 : integer; part : object) : boolean+ s* t, ?$ t. ?+ C6 l y
is4 Z# h. _4 [+ p3 I
i,j,k,w : integer;6 ~- t; |, u; ^" x, t: K* w/ U
do
4 K' K9 C, K3 C for k := 1 to Crane.getStoreZDim loop
& _$ I; J$ z8 j$ p" I: H: G; o- e for i := Crane.getStoreXDim downto 1 loop2 E3 `" S( O+ ^2 t% j' d$ W4 i! @/ u
for j := 1 to Crane.getStoreYDim loop" o# K0 t: |4 [, P, ~0 C1 g$ m0 {. n+ u
if Crane.placeIsFree(i,j,k) then
; m8 p9 k2 e! p7 e x1 := i;
* V5 c ^' u; s y1 := j;1 k/ O: z9 Y/ i: ~+ Z$ T8 h
z1 := k;
4 w2 a) F* H( c0 `; c if Crane.placeIsFree(14,1,2) then
+ \/ Q) Y1 d1 G5 Y w:=1
& n! }6 T" Y+ ^, ?( @; C1 f end;
8 I/ A0 a, c& ~; \: L7 ` return true;6 [8 `1 |* o% M: I$ w
end;! p9 W+ z+ d5 V* F/ W
next;
) }% [- ~6 v/ a/ t9 I! l0 D0 | next;
/ Z! P) ]1 g* f next;
' x7 F7 k; S" T return false;
- A! `9 B- e5 Q4 oend;
3 Y& s( B7 |' P# J& |: F 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
7 F; T) ~/ h0 z+ v% j9 [! Y% k |
|