コード例 #1
0
ファイル: Cart.cs プロジェクト: isse-augsburg/ssharp
		public virtual bool CanMove(Robot robot)
		{
			if (_position == robot)
				return true;

			return Routes.Any(route => route.CanNavigate(_position, robot));
		}
コード例 #2
0
ファイル: Cart.cs プロジェクト: isse-augsburg/ssharp
		public virtual bool MoveTo(Robot robot)
		{
			if (!CanMove(robot))
				return false;

			_position = robot;
			return true;
		}
コード例 #3
0
ファイル: Route.cs プロジェクト: isse-augsburg/ssharp
		public bool CanNavigate(Robot robot1, Robot robot2)
		{
			// routes are bi-directionally navigatable
			return ((Robot1 == robot1 && Robot2 == robot2) || (Robot1 == robot2 && Robot2 == robot1)) && !IsBlocked;
		}
コード例 #4
0
ファイル: Route.cs プロジェクト: isse-augsburg/ssharp
		public Route(Robot robot1, Robot robot2)
		{
			Robot1 = robot1;
			Robot2 = robot2;
		}
コード例 #5
0
ファイル: Cart.cs プロジェクト: isse-augsburg/ssharp
			public override bool CanMove(Robot robot) => false;
コード例 #6
0
ファイル: Cart.cs プロジェクト: isse-augsburg/ssharp
			public override bool MoveTo(Robot robot) => false;
コード例 #7
0
ファイル: Cart.cs プロジェクト: isse-augsburg/ssharp
		public bool IsPositionedAt(Robot robot)
		{
			return _position == robot;
		}
コード例 #8
0
ファイル: Cart.cs プロジェクト: isse-augsburg/ssharp
		public Cart(Robot startPosition, params Route[] routes)
		{
			Routes = routes;
			_position = startPosition;
		}
コード例 #9
0
ファイル: Cart.cs プロジェクト: isse-augsburg/ssharp
			public override bool MoveTo(Robot robot)
			{
				_position = Choose(Routes.SelectMany(route => new[] { route.Robot1, route.Robot2 }));
				return true;
			}