|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
% u' b4 D T! q' L* G8 @(byref x1,y1,z1 : integer; part : object) : boolean
+ w! A& @* j" T1 |is
% o7 H0 k8 n0 [ i,j,k,w : integer;
4 x# Q2 F) \% h0 t- t1 n8 F% L, sdo- T- S/ H4 \- J2 R; R
for k := 1 to Crane.getStoreZDim loop" m# @' }2 n! v# p+ ]; O. _8 |
for i := Crane.getStoreXDim downto 1 loop
* i4 t; R) Z, V4 [! w6 F for j := 1 to Crane.getStoreYDim loop5 F) Y$ d: u: \( |
if Crane.placeIsFree(i,j,k) then
- f( G$ K% _! o# z _1 Y. w7 Y x1 := i;( O: F/ Q/ [. w% l0 P- d- d
y1 := j;
- N9 i0 e) W4 H7 e( T z1 := k;
' v7 q7 I% n4 ~5 j: D: j* R if Crane.placeIsFree(14,1,2) then
5 g8 Y4 m; i! A! _ w:=1* l" K4 t2 J; t0 G5 M) G
end; O; i0 H. y" U' g" T/ h$ `. z
return true;
0 o* b. C; V, n4 ?) E V end;2 f( w' W6 Y- ?+ F! P2 U. K/ d
next;
, c/ d. N" v7 b: f. }/ y7 ? next;1 v5 o% N/ s. {( t$ ]/ T& L! O# D
next;
. `# h4 g- {1 H1 J6 b2 ?5 a return false;- b# i# ?5 P# v7 Y
end;
( N4 {' f7 I6 N: C1 @( W; M 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?- f" H, a' l3 f; E6 t( F
|
|