|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:
$ y: R8 O# A) o(byref x1,y1,z1 : integer; part : object) : boolean3 o0 R" a1 U m5 l: D$ _
is
+ B6 i8 A: E$ Q! Z! G) i1 R a3 X i,j,k,w : integer;1 t+ \! ^ y' K" O% F- u3 q) A; U
do/ m8 T @# v& B' g
for k := 1 to Crane.getStoreZDim loop2 z: B' Q% Y0 k
for i := Crane.getStoreXDim downto 1 loop
3 b, z/ m# t3 j( E; O/ f for j := 1 to Crane.getStoreYDim loop! | X O! ?& J. _# e f% ]
if Crane.placeIsFree(i,j,k) then
9 v1 t" b% g6 ]; m& u x1 := i;
2 T) {; a/ ~! q" q, \4 H/ A y1 := j;
6 m6 N4 z1 r! G7 N: F3 U z1 := k;$ \* W9 ^2 M: e" {4 a8 z
if Crane.placeIsFree(14,1,2) then/ {1 y/ |, j5 i7 H% X
w:=1 O% Q5 _2 m% j/ E1 v$ k7 A
end;
3 z! B+ [7 L" j3 [) |' { return true;" {% Q& N1 D7 {# D3 J
end;
& X6 k$ ^0 A3 P& R/ a, B next;
6 n) Y. W' p: C" R, K: Q' s next;
3 _5 v/ W, ?% \, L8 g next;
' ~; A7 t& T3 i' C return false;8 j: ]* D1 r- C, e0 n# w9 R
end;
5 m& M1 C d2 H; l 判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
+ H$ e# k* W5 f7 O* Z |
|