Пример #1
0
        /// <summary>
        /// hareket direktifi ile oluşacak koordinat değişikliği  birim çember üzerindeki açısal durumdan
        /// koordinat bazlı ayrı yarı hesaplanır
        /// </summary>
        /// <param name="position"></param>
        /// <param name="coordinat"></param>
        /// <returns></returns>
        private static int CalculateNextStepMoveCoordinat(int position, Coordinats coordinat)
        {
            var result = 0;

            switch (coordinat)
            {
            case Coordinats.X:
                result = (int)Math.Cos(RoverUtils.ConvertDegreeToRadian(position));
                break;

            case Coordinats.Y:
                result = (int)Math.Sin(RoverUtils.ConvertDegreeToRadian(position));
                break;

            default:
                break;
            }

            return(result);
        }
Пример #2
0
 /// <summary>
 ///  Yön değiştirme direktifi  birim çember esas alınıp açısal hesaplanmıştır
 ///  360 derece döndüğünde aynı yöne geldiğinden bu aralıkla sınırlandırılır
 /// </summary>
 /// <param name="position"></param>
 /// <param name="letter"></param>
 /// <returns></returns>
 public static int CalculateDirectionPositionViaUnitCircle(int position, char letter)
 {
     position += RoverUtils.ConvertCompassCharToPositon(letter); // gelen direktifin yaratacağı açı değişikliği hesaplanır
     position  = position % 360;
     return(position);
 }