public void Test1()
        {
            Plato  plato  = new Plato(new Pozisyon(5, 5));
            Korsan korsan = new Korsan(plato, new Pozisyon(1, 2), Yon.N);

            korsan.Talimat("LMLMLMLMM");
            string sonuc = korsan.ToString();

            Assert.Equal("1 3 N", sonuc);
        }
        public void Test4()
        {
            Plato  plato  = new Plato(new Pozisyon(6, 7));
            Korsan korsan = new Korsan(plato, new Pozisyon(2, 3), Yon.N);

            korsan.Talimat("RRRRLLLLLRRLMLLR");
            string sonuc = korsan.ToString();

            Assert.Equal("2 4 W", sonuc);
        }
        public void Test3()
        {
            Plato  plato  = new Plato(new Pozisyon(9, 9));
            Korsan korsan = new Korsan(plato, new Pozisyon(3, 4), Yon.S);

            korsan.Talimat("MLMRMMLLMM");
            string sonuc = korsan.ToString();

            Assert.Equal("4 3 N", sonuc);
        }
        public void Test2()
        {
            Plato  plato  = new Plato(new Pozisyon(5, 5));
            Korsan korsan = new Korsan(plato, new Pozisyon(3, 3), Yon.E);

            korsan.Talimat("MMRMMRMRRM");
            string sonuc = korsan.ToString();

            Assert.Equal("5 1 E", sonuc);
        }
示例#5
0
        private static Korsan YonBelirle(string yonStr, Korsan korsan)
        {
            switch (yonStr)
            {
            case "E": korsan.KorsanYon = Yon.E; break;

            case "N": korsan.KorsanYon = Yon.N; break;

            case "W": korsan.KorsanYon = Yon.W; break;

            case "S": korsan.KorsanYon = Yon.S; break;
            }
            return(korsan);
        }
示例#6
0
        static void Main(string[] args)
        {
            Console.WriteLine("Girmek istediğiniz komutlar bittiğinde sonucu gormek icin \"0\" a basabilirsiniz");
            Console.WriteLine("Input:");
            string platoStr;

            platoStr = Console.ReadLine();
            Plato plato = PlatoTanimla(platoStr);

            while (plato.PlatoPozisyon.X == 0)
            {
                Console.WriteLine("Plato sinirlarini dogru girmelisiniz! ör: 5 5");
                platoStr = Console.ReadLine();
                plato    = PlatoTanimla(platoStr);
            }

            int    sayac  = 0;
            string deger  = "";
            Korsan korsan = new Korsan(plato, new Pozisyon(0, 0), Yon.E);

            ArrayList sonucStr = new ArrayList();

            Regex komutReg  = new Regex(@"^[L,R,M]*$");
            Regex pozYonReg = new Regex(@"^[0-9]* [0-9]* [E,N,W,S]$");

            while (deger != "0")
            {
                deger = Console.ReadLine();
                sayac++;
                if (deger != "0")
                {
                    if (sayac % 2 == 0)
                    {
                        if (komutReg.IsMatch(deger))
                        {
                            deger = Sadelestir(deger.Trim());
                            korsan.Talimat(deger);
                            // verilen talimat yerine getirilirken herhangi bir komutla plato disina ciktiysa talimatlar durdurulur kullaniciya uyarı verilir.
                            if (korsan.KorsanPozisyon.X > plato.PlatoPozisyon.X || korsan.KorsanPozisyon.Y > plato.PlatoPozisyon.Y || korsan.KorsanPozisyon.X < 0 || korsan.KorsanPozisyon.Y < 0 || korsan.KorsanPozisyon.X == -1)
                            {
                                Console.WriteLine("Korsan için verilen komut, korsanın plato dışına çıkmasına sebep oldu!");
                            }
                            else
                            {
                                sonucStr.Add(korsan.ToString());
                            }
                        }
                        else
                        {
                            Console.WriteLine("L, R, M disinda komut verilemez.");
                            sayac--;
                        }
                    }
                    else
                    {
                        if (pozYonReg.IsMatch(deger))
                        {
                            string[] korsanPozisyonYonArr = deger.Trim().Split(' ');

                            korsan.KorsanPozisyon.X = Convert.ToInt32(korsanPozisyonYonArr[0]);
                            korsan.KorsanPozisyon.Y = Convert.ToInt32(korsanPozisyonYonArr[1]);
                            if (korsan.KorsanPozisyon.X > plato.PlatoPozisyon.X || korsan.KorsanPozisyon.Y > plato.PlatoPozisyon.Y || korsan.KorsanPozisyon.X < 0 || korsan.KorsanPozisyon.Y < 0)
                            {
                                Console.WriteLine("Verilen baslangic pozisyonu plato dışında olamaz!");
                                sayac--;
                            }
                            else
                            {
                                korsan = YonBelirle(korsanPozisyonYonArr[2], korsan);
                            }
                        }
                        else
                        {
                            Console.WriteLine("E, N, W, S disinda yon verilemez.");
                            sayac--;
                        }
                    }
                }
            }

            Console.WriteLine("Output:");
            foreach (var sonuc in sonucStr)
            {
                Console.WriteLine(sonuc);
            }
        }