Fanuc Karel 实现队列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/itworld123/article/details/83582745
---------------------------------------------
-- 时间: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!)

猜你喜欢

转载自blog.csdn.net/itworld123/article/details/83582745