|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:4 x$ Z+ B% Q; [+ z2 M; N
(byref x1,y1,z1 : integer; part : object) : boolean
# G' l: i, q" A5 ?0 d- \' \- ]is7 ]6 d' L" y, b1 X" s* [4 O9 f. H
i,j,k,w : integer;
6 {! A1 `9 r! xdo. H; b" B* p6 B2 i
for k := 1 to Crane.getStoreZDim loop9 F# t. u3 c+ l# d4 {
for i := Crane.getStoreXDim downto 1 loop
$ C- V& |& X/ H, W+ @ for j := 1 to Crane.getStoreYDim loop8 h0 }4 v9 e# h/ x/ T0 B
if Crane.placeIsFree(i,j,k) then* m) e0 Z2 |: Q& l [
x1 := i;
; N" S1 F" }( @! F9 U y1 := j;( r/ y* C7 H* r0 e J/ K1 S
z1 := k;
- F# ^+ f& ~! Q2 l2 G9 n if Crane.placeIsFree(14,1,2) then% D( _" T( d, [6 u
w:=1
! w! y- c: w' C1 p4 f end;
) @3 @4 `7 D6 e0 K8 j+ U& \$ N return true;: z$ h0 [2 ?3 _) F1 [& Z
end;8 t" k, u9 @: @# K$ Z
next;
# g6 r, B& v p next;
# |6 i6 y% m2 _ |! H% c& ^/ B next;$ \. j* p; z/ Y' R. L
return false;6 B- v, F) J6 C9 A* l7 G
end;- Y# a: L' O; P9 B- S6 n) q
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
+ X" h1 a1 f# _* d, o |
|