コード例 #1
0
        public override IEnumerable <Action <Move> > Perform()
        {
            while (true)
            {
                if (me.State == HockeyistState.Swinging)
                {
                    yield return(move => {
                        move.Action = ActionType.Strike;
                    });

                    continue;
                }

                foreach (var action in getThePuck.Perform())
                {
                    yield return(action);
                }

                if (reach == null)
                {
                    reach = new ReachAndSlowdownBehaviour(me, PickClosestStrikePoint(), false);
                    foreach (var action in reach.Perform())
                    {
                        yield return(action);
                    }
                }

                while (Math.Abs(me.GetAngleTo(world.NetStrikePoint())) > (game.StrikeAngleDeviation))
                {
                    yield return(move => {
                        move.Turn = me.GetAngleTo(world.NetStrikePoint());
                    });
                }

                yield return(move => {
                    move.Action = ActionType.Strike;
                });

                reach = null;
            }
        }
コード例 #2
0
		public override IEnumerable<Action<Move>> Perform ()
		{
			while (true) {
				if (me.State == HockeyistState.Swinging)
				{
					yield return move => {
						move.Action = ActionType.Strike;
					};
					continue;
				}
					
				foreach (var action in getThePuck.Perform()) {
					yield return action;
				}

				if (reach == null) {
					reach = new ReachAndSlowdownBehaviour (me, PickClosestStrikePoint (), false);
					foreach (var action in reach.Perform()) {
						yield return action;
					}
				}
					
				while (Math.Abs (me.GetAngleTo (world.NetStrikePoint ())) > (game.StrikeAngleDeviation)) {
					yield return move => {
						move.Turn = me.GetAngleTo (world.NetStrikePoint ());
					};
				}

				yield return move => {
					move.Action = ActionType.Strike;
				};

				reach = null;
			}
		}