void IMegfigyelo.Fotoz(Fenytartomany ft) { if (EletbenVan) { if (ft == Fenytartomany.hokep && !KepesHokepetKesziteni) { throw new DronException(this, "Hőkép készítése ezen a drónon nem támogatott."); } else { if (FenytartomanyokbanMennyiFotoKeszult.ContainsKey(ft)) { FenytartomanyokbanMennyiFotoKeszult[ft] += 1; } else { FenytartomanyokbanMennyiFotoKeszult.Add(ft, 1); } this.Jelentes(string.Format("A fénykép a(z) {0} fénytartományban elkészült.", ft.ToString())); } } else { throw new DronException(this, "A drón megsemmisült, nem tud már fotózni sehogyan se. [Lelőtték :( ]"); } }
private static int FotokSzamaAFenytartomanyban(FelderitoDron felderitoDron, Fenytartomany fenytartomany) { int fotoDb = 0; if (felderitoDron.FenytartomanyokbanMennyiFotoKeszult.ContainsKey(fenytartomany)) { fotoDb += felderitoDron.FenytartomanyokbanMennyiFotoKeszult[fenytartomany]; } return(fotoDb); }
public void Fotoz(Fenytartomany ft) { if (EletbenVan) { if (ft != Fenytartomany.hokep) { throw new DronException(this, "Ez a drón csak hőkép készítését támogatja."); } else { FotokSzama++; } } else { throw new DronException(this, "A drón megsemmisült, nem tud már fotózni sehogyan se. [Lelőtték :( ]"); } }
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); } }