|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:( v; R4 O2 j: T# S4 G
(byref x1,y1,z1 : integer; part : object) : boolean& N$ M1 q: I% H5 @
is
$ b# ~' a$ a4 I$ j( T i,j,k,w : integer;
5 r& q" ]4 a5 x8 n. C9 p. Pdo
0 V% R* B# j9 y/ E for k := 1 to Crane.getStoreZDim loop1 Z ]9 i3 U* q- S2 }
for i := Crane.getStoreXDim downto 1 loop+ ?4 e" p) M0 ?
for j := 1 to Crane.getStoreYDim loop
0 b# \) [3 l ~+ n& m" ?% W# x if Crane.placeIsFree(i,j,k) then; ?# b7 S: R$ G, V* A: K! v5 i
x1 := i;
V: h7 F* M Q y1 := j;6 I8 c( p# u4 l, g# `9 n
z1 := k;# ?4 F5 B$ b. J, X1 `. I" X! {
if Crane.placeIsFree(14,1,2) then+ \% G, S2 N9 u0 y) P% X! X4 q
w:=1
$ e9 H# E E% _( Z7 V& t end;
3 f! n0 M6 Y5 v- L4 S% F- e% A9 D return true;2 ]4 s+ \. Q7 N' I, r) l
end;
8 Q! j# p8 c/ p3 d P next;: Q, U: `0 @9 s0 j' B# S
next;0 @6 x% G$ N- j) L7 ]
next;0 j# [* `) D% ?. N. k
return false;6 o' w' W$ T" o$ \
end;
1 H: B1 l$ E* p. q8 P 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
! Z+ h% G- m# f2 Q |
|