public node() { ant = null; bee = null; y_bee = null; next = null; }
public node(cukur dip) { ant = null; bee = null; y_bee = null; next = null; this.baglantı = dip; this.baglantı.bag = this; }
public node(tuzak t) { ant = null; bee = null; y_bee = null; this.ant = null; next = null; pusu = t; t.bag = this; }
private void oldur(karınca ka, arı ar, yaban_arı ya) { if (ka != null && ka.life <= 0) { ka = null; } if (ar != null && ar.life <= 0) { ar = null; } if (ya != null && ya.life <= 0) { ya = null; } }
public void ekle(bocek b) { if (b.isim == "karınca") { ant = (karınca)b; } else if (b.isim == "arı") { bee = (arı)b; } else { y_bee = (yaban_arı)b; } }
public void sil() { if (bee != null) { bee = null; } else if (y_bee != null) { y_bee = null; } else { ant = null; } }
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 void savas() { if (ant != null && bee != null && y_bee != null) { int hasar = (ant.life + bee.life + y_bee.life) / 3; ant.life = ant.life - hasar; bee.life = bee.life - hasar; y_bee.life = y_bee.life - hasar; if (ant.life <= 0) { ant = null; } if (bee.life <= 0) { bee = null; } if (y_bee.life <= 0) { y_bee = null; } } else if (ant != null && bee != null && y_bee == null) { int hasar = (ant.life + bee.life) / 2; ant.life = ant.life - hasar; bee.life = bee.life - hasar; if (ant.life <= 0) { ant = null; } if (bee.life <= 0) { bee = null; } } else if (ant != null && bee == null && y_bee != null) { int hasar = (ant.life + y_bee.life) / 2; ant.life = ant.life - hasar; y_bee.life = y_bee.life - hasar; if (ant.life <= 0) { ant = null; } if (y_bee.life <= 0) { y_bee = null; } } else if (ant == null && bee != null && y_bee != null) { int hasar = (bee.life + y_bee.life) / 2; bee.life = bee.life - hasar; y_bee.life = y_bee.life - hasar; if (bee.life <= 0) { bee = null; } if (y_bee.life <= 0) { y_bee = null; } } }