Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace func_rocket
- {
- public class ControlTask
- {
- public static Turn ControlRocket(Rocket rocket, Vector target)
- {
- var currentAngle = CalculateAngle(rocket, target);
- if (currentAngle == 0)
- return Turn.None;
- return currentAngle > 0 ? Turn.Right : Turn.Left;
- }
- private static double CalculateAngle(Rocket rocket, Vector target)
- {
- var distance = target - rocket.Location;
- var littleAngleDifference = Math.Abs(
- distance.Angle - rocket.Direction) < 0.5||
- Math.Abs(distance.Angle - rocket.Velocity.Angle) < 0.5;
- return littleAngleDifference ?
- (2 * distance.Angle - rocket.Velocity.Angle - rocket.Direction) / 2 :
- distance.Angle - rocket.Direction;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement