1. 程式人生 > >Fanuc Karel 實現佇列

Fanuc Karel 實現佇列

---------------------------------------------
-- 時間:2018-10-31
-- 建立人:Ruo_Xiao
-- 郵箱:[email protected]
---------------------------------------------

1、原始碼

CONST
	iQueueLen = 7

VAR
--	快取Robot位置
	Queue_CurPos	:	ARRAY [iQueueLen] OF POSITION

--	已經快取的資料數量
	iQueue_Sum	:	INTEGER

-----------------------  佇列快取  -----------------------
ROUTINE XQUEUE(Pos_Cur , Pos_R : XYZWPREXT) :	BOOLEAN
VAR
	i , t	:	INTEGER
BEGIN
	iQueue_Sum = iQueue_Sum + 1
	IF iQueue_Sum <= iQueueLen THEN
		Queue_CurPos [iQueue_Sum] = Pos_Cur
		RETURN (FALSE)
	ELSE
		iQueue_Sum = iQueue_Sum - 1
		Pos_R = Queue_CurPos [iQueueLen]
		FOR i=1 TO (iQueueLen-1) DO
			t = iQueueLen - i 
			Queue_CurPos [t+1] = Queue_CurPos [t]
		ENDFOR
		Queue_CurPos [1] = Pos_Cur
		RETURN (TRUE)
	ENDIF
END XQUEUE

2、解釋

(1)作用:建立佇列“Queue_CurPos

(2)形參:“Pos_Cur”機器人當前位置,“Pos_R”即為佇列滿時返回的元素。

(3)返回值:佇列未滿時,返回false,否則返回true

 

 

 

(SAW:Game Over!)