reservationagent.as

来自「QS我也没用过」· AS 代码 · 共 45 行

AS
45
字号
package qs.utils
{
	import flash.utils.Dictionary;
	
	public class ReservationAgent
	{
		private var reservations:Object = {};
		private var customerMap:Dictionary = new Dictionary();
		private var _tableCount:int = 0;		
		public function ReservationAgent():void
		{
		}
		// horribly innefficient...needs to be optimized at some point
		public function reserve(customer:Object):int
		{
			var nextTable:int = findMaxTable();
			
			_tableCount = Math.max(_tableCount, nextTable+1);
			reservations[nextTable] = customer;
			customerMap[customer] = nextTable;
			return nextTable;
		}
		public function release(customer:Object):void
		{
			var table:int = customerMap[customer];

			delete reservations[table];
			delete customerMap[customer];
			if(table == _tableCount-1)
				_tableCount = findMaxTable();
		}
		
		private function findMaxTable():int
		{
			var nextTable:int = 0;
			while(nextTable in reservations)
				nextTable++;
			return nextTable;
		}
		public function get count():int
		{
			return _tableCount;
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?