|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:% n6 } T( ~3 \2 O
(byref x1,y1,z1 : integer; part : object) : boolean
3 P! K' j* ]& G" }+ ois
A x, m6 s1 W" \ i,j,k,w : integer;. ~+ q" x* [6 g
do
4 n/ c4 v, n6 p for k := 1 to Crane.getStoreZDim loop& m2 h0 B5 @+ h4 J5 R
for i := Crane.getStoreXDim downto 1 loop
4 d5 m" E6 d) _, f% t for j := 1 to Crane.getStoreYDim loop
2 L" I* i: m3 H) p$ z9 G7 z if Crane.placeIsFree(i,j,k) then
G9 a3 {, a0 k. n# e6 [! F9 u x1 := i;
: a1 D5 [- k1 A; I y1 := j;* }+ l0 G, H) g. \* S3 Z
z1 := k;9 A+ C" F% s7 N: @7 E
if Crane.placeIsFree(14,1,2) then" @) z+ G/ w# v6 s7 x) I
w:=1; A$ d3 }+ T) o( f
end;+ y ?2 j7 y3 C9 k1 M, h2 O1 R- d
return true;
, Y; o2 M: @8 ? end;
! v4 e7 W' C7 p3 B1 o next;
) p5 Y: x( w3 V: C+ T8 C5 i next;
) a" k: ]: L! F" s next;
. o4 R. d# u' p5 G0 _7 _2 R& S return false;; `. ?7 Y+ @. o
end;
7 V5 e% {1 O# v# w" p 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
- A U, a5 ~- x& Y) B2 r4 l |
|