|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
# d! M6 p- \* \$ I5 m(byref x1,y1,z1 : integer; part : object) : boolean
7 F4 w9 B) p. Y: e2 Ais
8 E- q/ Q L5 w' c8 M i,j,k,w : integer;
; w0 p: v0 ]4 N/ P+ ndo/ `- P" b- a9 j
for k := 1 to Crane.getStoreZDim loop
9 J! M) `: {( g; J, j: @! D for i := Crane.getStoreXDim downto 1 loop* ?6 q3 O7 A; V) W2 x+ _0 c
for j := 1 to Crane.getStoreYDim loop2 y: E% o5 u+ r4 f# h
if Crane.placeIsFree(i,j,k) then% ^% c. W' f; l O
x1 := i;5 ?* d5 `. g, N/ s& ~" j
y1 := j;
+ ]. g; Z$ c. ` z1 := k;
/ }& a2 B% V$ |# N$ h5 B7 M% s if Crane.placeIsFree(14,1,2) then* |2 I. k! a7 E" t$ ^
w:=18 M! ~! W$ }) n9 I& l
end;
* ]4 G1 f6 ^+ g5 Z1 P return true;
" @; @2 ?4 X0 {2 m end;
1 w9 Z6 e8 H! _8 P) T1 I e next;% A" b( K2 F2 A% L3 d
next;& S# [4 ^: C- `1 s! \- }4 m
next;
% Q# M$ g4 T3 m% B return false;
& N5 P4 u3 |6 Q6 u, @end;# a1 Q: |& m3 {
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
3 c7 e" I9 h# D0 P& R4 t/ T+ ?1 b9 l |
|