public void Lo(Dron MasikDron) { if (EletbenVan) { if (MasikDron == this) { throw new DronException(this, "Saját magamra nem tudok lőni."); } if (MasikDron.EletbenVan) { if (Position.Tavolsag(this.Pozicio, MasikDron.Pozicio) <= Lotav) { MasikDron.Jelentes("Most már semmi! [Lelőtték]"); MasikDron.EletbenVan = false; this.Jelentes(string.Format("Lelőttem drón {0}-t.", MasikDron.Azonosito), ConsoleColor.Green); } else { throw new DronException(this, string.Format("Drón {0} túl messze van, nem találtam el.", MasikDron.Azonosito)); } } else { throw new DronException(this, string.Format("Drón {0}-t már lelőtték, nem tudok rálőni.", MasikDron.Azonosito)); } } else { throw new DronException(this, "Ez a drón megsemmisült, nem tud már lövöldözni. [Ironikus, őt lőtték le :) ]"); } }
public DronException(Dron dron) : base(string.Format("Drón: {0} meghibásodott.", dron.Azonosito)) { }
public DronException(Dron dron, string hiba) : base(string.Format("Drón: {0} hibát jelez: {1}", dron.Azonosito, hiba)) { }
private static void VeletlenszeruHarc(DronGyar dronGyar) { Random rnd = new Random(DateTime.Now.Millisecond); int dronokSzama = dronGyar.Dronok.Count; for (int i = 0; i < 5000; i++) { int kovetkezoDron = rnd.Next(0, dronokSzama); Dron dron = dronGyar.Dronok[kovetkezoDron]; Akcio kovetkezoAkcio = (Akcio)rnd.Next(0, 4); if (dron.EletbenVan) { dron.Jelentes(string.Format("Ez az én köröm és {0}ni fogok!", kovetkezoAkcio)); try { switch (kovetkezoAkcio) { case Akcio.Repul: float a, b, c, d; a = rnd.Next(100, 1000); b = rnd.Next(100, 1000); c = rnd.Next(100, 1000); d = rnd.Next(100, 1000); float ujX = a / b; float ujY = c / d; dron.Repul(ujX, ujY); break; case Akcio.Fotoz: //mindkét gyerek drón típus megvalósítja az IMegfigyelő interfészt Fenytartomany fenytartomany = (Fenytartomany)rnd.Next(0, 5); (dron as IMegfigyelo).Fotoz(fenytartomany); break; case Akcio.Bombaz: if (dron is IHarcos) { (dron as IHarcos).Bombaz(); } else { if (dron.EletbenVan) { dron.Jelentes("Nem vagyok IHarcos, nem bombázok. Peace!", ConsoleColor.White); } else { dron.Jelentes("Ha élnék nem bombáznék, mert nem vagyok IHarcos, de lelőttek!", ConsoleColor.Red); } } break; case Akcio.Lo: if (dron is IHarcos) { int masikDron = rnd.Next(0, dronokSzama); Dron masik = dronGyar.Dronok[masikDron]; if (masik.EletbenVan) { masik.Jelentes("Van egy kis problémám! Mi az?"); (dron as IHarcos).Lo(masik); } else { dron.Jelentes(string.Format("Ráfordultam {0} drónra, de már lelőtték!", masik.Azonosito), ConsoleColor.Red); } } else { if (dron.EletbenVan) { dron.Jelentes("Nem vagyok IHarcos, nem lövöldözök!", ConsoleColor.White); } else { dron.Jelentes("Ha élnék nem lövöldöznék, mert nem vagyok IHarcos, ráadásul még le is lőttek!", ConsoleColor.Red); } } break; default: break; } } catch (DronException dronException) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(dronException.Message); } catch (Exception exception) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Valami komolyabb hiba történt: {0}", exception.Message); } } else { dron.Jelentes(string.Format("Ez az én köröm lett volna, ha még élnék és {0}ni kellett volna!", kovetkezoAkcio), ConsoleColor.DarkGreen); } //System.Threading.Thread.Sleep(150); } }