示例#1
0
 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 :) ]");
     }
 }
示例#2
0
 public DronException(Dron dron)
     : base(string.Format("Drón: {0} meghibásodott.", dron.Azonosito))
 {
 }
示例#3
0
 public DronException(Dron dron, string hiba)
     : base(string.Format("Drón: {0} hibát jelez: {1}", dron.Azonosito, hiba))
 {
 }
示例#4
0
文件: Program.cs 项目: xul8tr/CSharp
        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);
            }
        }