|
|
请教关于PortalCrane的问题,实在想不明白。发现placeIsFree调用的一个问题:当通过PortalCrane的Strategy下的自定义可利用位置(Define your own method for searching an available location)时,自定义程序为:, K7 @& `7 A* y% Y) ^, G
(byref x1,y1,z1 : integer; part : object) : boolean
$ V8 M9 ^8 c3 Q# _is
; L4 K- t+ i0 O, ~/ k i,j,k,w : integer;3 c) D* s/ _: V& L! B8 @
do
: c O; N8 ?3 Y* k8 Z for k := 1 to Crane.getStoreZDim loop4 N/ @: [1 B1 i! y. S
for i := Crane.getStoreXDim downto 1 loop6 c8 h' D) U- v$ }
for j := 1 to Crane.getStoreYDim loop
0 Q: d. U# T* s* r) R# I if Crane.placeIsFree(i,j,k) then
b3 U$ ~2 Z' q x1 := i;) i3 m/ N# J. B( Q) s
y1 := j;# ~5 Z% S f7 j2 U% z( Z- Z/ _
z1 := k;- x2 E, d3 o& B7 E7 k" G: B1 S
if Crane.placeIsFree(14,1,2) then9 g" x+ {0 D& `
w:=1# |6 C n c; V5 `9 y! \
end;" |5 Y% f \. N+ F
return true;
a+ u4 x( Z! n1 ? end;/ g# n/ _+ ]9 B" i) |0 o! e0 z
next;% y- u/ {* Q U
next;9 @% Z. l* z. S9 i! x! F
next;5 n" C4 {2 M7 a* i/ k/ n
return false;
$ f6 v" f1 Q: y3 {# w: Send;7 \, V m% w u! \: u. F/ z4 b* [
判断的位置(14,1,2)的Free是True;而在某个程序中直接调用placeIsFree时, 判断的(14,1,2)的Free是False。保证两次判断位置(14,1,2)一直没有被占用。想知道是什么原因?placeIsFre方法到底该如何用?请求赐教?
) L+ A0 K; |1 `. M |
|