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); }
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); }
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); } }