Пример #1
0
 private static Robotic output(char[] katar, Robotic rob)
 {
     foreach (var item in katar)
     {
         if (item == 'L' || item == 'R')
         {
             rob.dir.d = Direction.findDirection(item, rob.dir.d);
         }
         else if (item == 'M')
         {
             rob.loc.p = Location.move(rob.dir.d, rob.loc.p);
             //Koordinat dışına çıkmasını engellemek için;
             if (rob.loc.p.Y > koordinat.Y)
             {
                 rob.loc.p = new Point(rob.loc.p.X, koordinat.Y);
             }
             if (rob.loc.p.X > koordinat.X)
             {
                 rob.loc.p = new Point(koordinat.X, rob.loc.p.Y);
             }
             if (rob.loc.p.X < 0)
             {
                 rob.loc.p = new Point(0, rob.loc.p.Y);
             }
             if (rob.loc.p.Y < 0)
             {
                 rob.loc.p = new Point(rob.loc.p.X, 0);
             }
         }
     }
     return(rob);
 }
Пример #2
0
        static void Main(string[] args)
        {
            #region takeKoordinat

koordinat:
            Console.Write("Sağ üst koordinatı giriniz.");
            string koor = Console.ReadLine();
            if (koor.Length == 3)
            {
                if (char.IsNumber(koor[0]) && char.IsNumber(koor[2]))
                {
                    koordinat.X = int.Parse(koor.Substring(0, 1));
                    koordinat.Y = int.Parse(koor.Substring(2, 1));
                }
                else
                {
                    Console.WriteLine("Uygun formatta koordinat bilgisi girilmelidir.(X Y)");
                    goto koordinat;
                }
            }
            else
            {
                Console.WriteLine("Uygun formatta koordinat bilgisi girilmelidir.(X Y)");
                goto koordinat;
            }
            #endregion

            #region rob1

            Robotic rob1 = getKonum("1");
kat1:
            Console.WriteLine("1. robot için harf katarını giriniz");
            char[] katar1 = (Console.ReadLine().ToUpper()).ToCharArray();
            if (checkKatar(katar1) == false)
            {
                goto kat1;
            }
            #endregion

            #region rob2
            Robotic rob2 = getKonum("2");
kat2:
            Console.WriteLine("2. robot için harf katarını giriniz");
            char[] katar2 = (Console.ReadLine().ToUpper()).ToCharArray();
            if (checkKatar(katar2) == false)
            {
                goto kat2;
            }
            #endregion


            #region output
            rob1 = output(katar1, rob1);
            rob2 = output(katar2, rob2);
            Console.WriteLine("1. robotun son konumu ve yönü:" + rob1.loc.p.X + " " + rob1.loc.p.Y + " " + rob1.dir.d);
            Console.WriteLine("2. robotun son konumu ve yönü:" + rob2.loc.p.X + " " + rob2.loc.p.Y + " " + rob2.dir.d);
            #endregion
            Console.ReadKey();
        }
Пример #3
0
        private static Robotic getKonum(string number)
        {
rob:
            Console.WriteLine(number + ". robotun ilk konumunu giriniz.");
            string  rob     = Console.ReadLine();
            Robotic robotic = new Robotic();

            if (rob.Length == 5)
            {
                if (char.IsNumber(rob[0]) && char.IsNumber(rob[2]))
                {
                    robotic.loc = new Location {
                        p = new Point(int.Parse(rob.Substring(0, 1)), int.Parse(rob.Substring(2, 1)))
                    }
                }
                ;
                else
                {
                    Console.WriteLine("Uygun formatta koordinat bilgisi girilmelidir.(X Y (N E W S))");
                    goto rob;
                }

                robotic.dir = new Direction {
                    d = char.Parse(rob.Substring(4, 1).ToUpper())
                };
                if (robotic.dir.d == 'N' || robotic.dir.d == 'W' || robotic.dir.d == 'S' || robotic.dir.d == 'E')
                {
                }
                else
                {
                    Console.WriteLine("Uygun formatta koordinat bilgisi girilmelidir.(X Y (N E W S))");
                    goto rob;
                }
            }
            else
            {
                Console.WriteLine("Uygun formatta koordinat bilgisi girilmelidir.(X Y (N E W S))");
                goto rob;
            }
            return(robotic);
        }