|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:: Z+ e7 ^& Y+ B) u# a% E' Z
(byref x1,y1,z1 : integer; part : object) : boolean1 t! y5 i$ d8 Z
is
$ z8 X7 Z g# ~" e4 f- A i,j,k,w : integer;
: T; m; ]& P& J+ j+ C# Ado9 u$ P# P4 Q" f( C- m" x
for k := 1 to Crane.getStoreZDim loop" M: X4 e5 O, ]+ u
for i := Crane.getStoreXDim downto 1 loop
+ H7 c ^2 M1 A3 N/ o/ i9 S3 G3 d# y for j := 1 to Crane.getStoreYDim loop# ?- e0 s3 N8 ^/ N
if Crane.placeIsFree(i,j,k) then
. }) R4 j; V3 W$ C6 O x1 := i;
K* T3 v/ Y) O8 r! A, m& X0 G y1 := j;# m) Y! R# L5 y
z1 := k;' Y/ ^- } ?6 u, `2 r7 B s
if Crane.placeIsFree(14,1,2) then
7 W* n5 | M0 s' N' }, u w:=1, X0 J7 `: N% x. f+ t" Z( R8 s
end;
+ u/ s: z6 E# t3 g- L return true;* _) [; a9 K" v h
end;
) v a6 |3 A8 k4 g next;
6 H4 s" r1 J8 r0 [4 I+ q) a9 Y; r next; H! Q( q5 V/ e3 F* k. A
next;
8 [) a: P T2 w: J4 w return false;
8 z0 @9 B# }2 P- b5 W+ Gend;
7 {, G) b8 C& U8 M 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
* @. b) C: T3 W% L& [ |
|