static void Main(string[] args) { Console.WriteLine("Karınca sayısını giriniz:"); string e = Console.ReadLine(); int karınca_say = Int16.Parse(e); Console.WriteLine("Yol Uzunluğunu giriniz:"); string yol = Console.ReadLine(); Console.WriteLine("Yaban arıları kaçıncı odadan girsin:"); string c = Console.ReadLine(); int indeks = Int16.Parse(c); int yol_uzunlugu = Int16.Parse(yol); node[] sıra = new node[yol_uzunlugu]; ArrayList tuzaklar = new ArrayList(); ArrayList cukurlu = new ArrayList(); string er = ""; int a = 0; while (a != yol_uzunlugu) { Console.WriteLine("Yolun içeriğini girin(tuzak=t/yol=y/cukur=c):"); er = Console.ReadLine(); if (er == "c") { Console.WriteLine("Çukur Büyüklüğü:"); string sayı = Console.ReadLine(); sıra[a] = new node(new cukur(Int32.Parse(sayı))); cukurlu.Add(a); } else if (er == "t") { sıra[a] = new node(new tuzak()); tuzaklar.Add(a); } else if (er == "y") { sıra[a] = new node(); } a++; } for (int f = 1; f < yol_uzunlugu; f++) { sıra[f - 1].next = sıra[f]; sıra[f].prev = sıra[f - 1]; } karınca[] dizi = new karınca[karınca_say]; for (int i = 0; i < karınca_say; i++) { dizi[i] = new karınca(i); } arı[] arı_dizi = { new arı(0), new arı(1), new arı(2), new arı(3) }; yaban_arı[] yaban_dizi = { new yaban_arı(1, "sol"), new yaban_arı(2, "sag"), new yaban_arı(3, "sol") }; node starter = new node(); starter.prev = null; starter.next = sıra[0]; sıra[0].prev = starter; node print = new node(); sıra[yol_uzunlugu - 1].next = print; print.prev = sıra[yol_uzunlugu - 1]; print.next = null; bool finish() { bool fin = true; node t = starter; while (t != null) { if (t.ant != null || t.y_bee != null || t.bee != null) { fin = false; break; } t = t.next; } return(fin); } void tostring() { if (print.ant != null) { Console.WriteLine(print.ant.isim + "," + print.ant.seq); print.ant = null; } if (print.y_bee != null) { Console.WriteLine(print.y_bee.isim + "," + print.y_bee.seq); print.y_bee = null; } if (starter.bee != null) { Console.WriteLine(starter.bee.isim + "," + starter.bee.seq); starter.ant = null; } if (starter.y_bee != null) { Console.WriteLine(starter.y_bee.isim + "," + starter.y_bee.seq); starter.y_bee = null; } } void ilerle_sol(node[] ndd, int ss) { if (ss < 4) { print.bee = arı_dizi[ss]; } if (ss < 3) { sıra[indeks].y_bee = yaban_dizi[ss]; } node t = print; arı temp = print.bee; print.bee = null; arı temp1 = null; yaban_arı temp2 = sıra[indeks].y_bee; yaban_arı temp3 = null; while (t.prev != null) { temp1 = t.prev.bee; t.prev.bee = temp; temp = temp1; if (t.y_bee != null && t.y_bee.yon == "sol") { temp3 = t.prev.y_bee; t.prev.y_bee = temp2; temp2 = temp3; temp3 = null; } t = t.prev; } } void ilerle_sag(node[] ndd, int ss) { if (ss < karınca_say) { starter.ant = dizi[ss]; } node t = starter; karınca temp2 = starter.ant; starter.ant = null; karınca temp3 = null; yaban_arı temp = sıra[indeks].y_bee; yaban_arı temp1 = null; while (t.next != null) { temp3 = t.next.ant; t.next.ant = temp2; temp2 = temp3; temp3 = null; if (t.y_bee != null && t.y_bee.yon == "sag") { temp1 = t.next.y_bee; t.next.y_bee = temp; temp = temp1; } t = t.next; } } int s = 0; do { foreach (node n in sıra) { n.savas(); } tostring(); ilerle_sag(sıra, s); ilerle_sol(sıra, s); foreach (int f in cukurlu) { sıra[f].baglantı.kontrol(); } foreach (int v in tuzaklar) { if (sıra[v].pusu != null) { sıra[v].yakala(); } } s++; } while (finish() == false); Console.ReadKey(); }
public tuzak() { tuzz = new node(); }