|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:9 `" v" Q- i) x. ?- f4 l q
(byref x1,y1,z1 : integer; part : object) : boolean
- x" i, D7 {* A* U* kis; t) O8 @# v# T ^+ |+ s
i,j,k,w : integer;6 b, o: c( K8 k' I7 | C
do
s. G, E6 S) M& }& X' H for k := 1 to Crane.getStoreZDim loop0 V" E7 K! x! E3 K& j- R4 d8 G! T
for i := Crane.getStoreXDim downto 1 loop- {+ a$ z. R2 C# S% Y5 J3 A& i
for j := 1 to Crane.getStoreYDim loop: c3 m6 }) U) `( J. M8 i0 ~
if Crane.placeIsFree(i,j,k) then
2 E/ j1 [" F; ^# [ f) k) h x1 := i;; t K: z: X# A4 N7 @/ C$ e, g# L
y1 := j;' g1 y' t: I% C- Z% j2 V
z1 := k;
x" E# a& Y8 M( A1 @ if Crane.placeIsFree(14,1,2) then0 P, C0 F& F* R; [9 D
w:=1
$ Q1 f }2 a% Q& L7 l* O3 ]1 p# n5 E6 U end;4 T. ^; @7 C- n+ f+ A
return true;
7 b) i5 [% Q l# \ end;/ o$ s! m4 [1 R! G
next;
. |( y+ y. U% m# ] next;" K0 {) s( x: ]
next;: Q! B& ]% l* X, e+ r0 A/ B
return false;
- Q5 U3 X! {9 lend;
0 _7 L0 v% C) W 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
0 ^* d' p1 P$ L0 H- Y9 ^ |
|