示例#1
0
        public Direction DirectionFromLocation(float lat, float lng)
        {
            var location        = new Location(lng, lat);
            var directionFinder = new DirectionFinder(location);

            return(directionFinder.BestDirection());
        }
示例#2
0
        public void DirectionFinder_GivenMoveRightCommand_WhenCurrentlyFacingNorth_ReturnsE()
        {
            var expected = 'E';

            var actual = DirectionFinder.CalculateDirection('N', 'R');

            Assert.AreEqual(expected, actual);
        }
示例#3
0
    // Start is called before the first frame update
    void Start()
    {
        talkLib        = TalkLib.GetTalkLib();
        move_lock      = false;
        camera         = GameObject.Find("Main Camera").GetComponent <Camera>();
        direction_mode = 0;
        sight          = GameObject.Find("Sight");

        rotate_buffer   = 5;
        isOnGround      = true;
        studentRb       = gameObject.GetComponent <Rigidbody>();
        studentAnim     = gameObject.GetComponent <Animator>();
        directionFinder = gameObject.GetComponent <DirectionFinder>();
        forward         = directionFinder.FindForward(direction_mode);
        UpdateDirection();
        gameObject.transform.position = new Vector3(PlayerPrefs.GetFloat("position_x"), PlayerPrefs.GetFloat("position_y"), PlayerPrefs.GetFloat("position_z"));
        //gameObject.transform.eulerAngles = new Vector3(PlayerPrefs.GetFloat("euler_x"), PlayerPrefs.GetFloat("euler_y"), PlayerPrefs.GetFloat("euler_z"));
    }
示例#4
0
        private Tuple <int[, ], char, bool, int[, ]> Move(char[] commands, IPosition mapBoundary, IList <IPosition> obstacles)
        {
            Tuple <int[, ], char, bool, int[, ]> result = null;

            foreach (char command in commands)
            {
                int[,] coordinates = new int[, ] {
                    { Position.XCoordinate, Position.YCoordinate }
                };

                char direction = Position.CardinalDirection;

                if (command == 'F' || command == 'B') //move forward or backward
                {
                    result = CalculateXYCoordinates(coordinates[0, 0], coordinates[0, 1], direction, command,
                                                    mapBoundary.XCoordinate, mapBoundary.YCoordinate,
                                                    obstacles);
                }
                else if (command == 'L' || command == 'R') //change direction
                {
                    result = new Tuple <int[, ], char, bool, int[, ]>(coordinates, DirectionFinder.CalculateDirection(direction, command), false, null);
                }

                Position.XCoordinate = result.Item1[0, 0];

                Position.YCoordinate = result.Item1[0, 1];

                Position.CardinalDirection = result.Item2;

                if (result.Item3) //if hit an obstacle progress no further
                {
                    break;
                }
            }

            return(result);
        }
示例#5
0
 public Direction DirectionFromLocation(float lat, float lng)
 {
     var location = new Location(lng, lat);
     var directionFinder = new DirectionFinder(location);
     return directionFinder.BestDirection();
 }