コード例 #1
0
        public override bool CzyMogeWspoldzialacZ(ZolnierzZawodowy x)
        {
            Oficer   o = new Oficer(0, "", "", 0, 0);
            Zolnierz z = new Zolnierz(0, "", "", "", 0);


            if (x.GetType() == typeof(Oficer))
            {
                o = (Oficer)x;
                if ((this.Doswiadczenie == "male" && o.ZmyslStrategiczny > 2) ||
                    (this.Doswiadczenie == "zadne" && o.ZmyslStrategiczny > 3) ||
                    (this.Doswiadczenie == "duze" && o.ZmyslStrategiczny > 0))
                {
                    return(true);
                }
            }
            else if (x.GetType() == typeof(Zolnierz))
            {
                z = (Zolnierz)x;
                if (z.Doswiadczenie == this.Doswiadczenie && (z.Amunicja > 0 || this.Amunicja > 0))
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #2
0
        override public ZolnierzZawodowy glebokakopia()
        {
            Zolnierz         x = new Zolnierz(this.stopien, this.imie, this.nazwisko, this.Doswiadczenie, this.Amunicja);
            ZolnierzZawodowy A = x;

            return(A);
        }
コード例 #3
0
        public List <ZolnierzZawodowy> JednostkiSpecjalne()
        {
            List <ZolnierzZawodowy> lista = new List <ZolnierzZawodowy>();
            Oficer   o = new Oficer(0, "", "", 0, 0);
            Zolnierz z = new Zolnierz(0, "", "", "", 0);

            for (int i = 0; i < zolnierze.Length; ++i)
            {
                if (zolnierze[i].GetType() == typeof(Oficer))
                {
                    o = (Oficer)zolnierze[i];
                    if (o.ZmyslStrategiczny > 3 && o.ZnajomoscTerenu > 2)
                    {
                        lista.Add(zolnierze[i]);
                    }
                }
                else if (zolnierze[i].GetType() == typeof(Zolnierz))
                {
                    z = (Zolnierz)zolnierze[i];
                    if (z.Doswiadczenie == "duze" && z.Amunicja > 99)
                    {
                        lista.Add(zolnierze[i]);
                    }
                }
            }
            return(lista);
        }
コード例 #4
0
        public Wojsko(ZolnierzZawodowy[] _zolnierze)
        {
            zolnierze  = new ZolnierzZawodowy[_zolnierze.Length];
            zolnierze_ = new bool[_zolnierze.Length];
            for (int i = 0; i < _zolnierze.Length; ++i)
            {
                Oficer   o = new Oficer(0, "", "", 0, 0);
                Zolnierz z = new Zolnierz(0, "", "", "", 0);


                //shallow copy
                //zolnierze[i] = _zolnierze[i];
                //deep copy (x.GetType() == typeof(Oficer))
                if (_zolnierze[i].GetType() == typeof(Oficer))
                {
                    o            = (Oficer)_zolnierze[i];
                    zolnierze[i] = o.glebokakopia();
                }
                else if (_zolnierze[i].GetType() == typeof(Zolnierz))
                {
                    z            = (Zolnierz)_zolnierze[i];
                    zolnierze[i] = z.glebokakopia();
                }

                zolnierze_[i] = true;
            }
        }
コード例 #5
0
        public override bool CzyMogeWspoldzialacZ(ZolnierzZawodowy x)
        {
            Oficer   o = new Oficer(0, "", "", 0, 0);
            Zolnierz z = new Zolnierz(0, "", "", "", 0);


            //if (x is Oficer)
            //{
            //    o = (Oficer)x;
            //    if ((this.Doswiadczenie == "male" && o.ZmyslStrategiczny > 2) ||
            //      (this.Doswiadczenie == "zadne" && o.ZmyslStrategiczny > 3) ||
            //      (this.Doswiadczenie == "duze" && o.ZmyslStrategiczny > 0))
            //    {
            //        return true;
            //    }
            //}
            if (x.GetType() == typeof(Zolnierz))
            {
                z = (Zolnierz)x;
                if (this.ZnajomoscTerenu == 4 || this.ZnajomoscTerenu == 5)
                {
                    return(true);
                }
                else if ((this.ZnajomoscTerenu == 2 || this.ZnajomoscTerenu == 3) &&
                         (z.stopien > 1))
                {
                    return(true);
                }
                else if ((this.ZnajomoscTerenu == 1 || this.ZnajomoscTerenu == 0) &&
                         (z.stopien == 3))
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #6
0
        static void Main(string[] args)
        {
            Console.WriteLine("---- Etap 1 ----");
            Oficer o1 = new Oficer(4, "Gromoslaw", "Kowalski", 3, 5);
            Oficer o2 = new Oficer(5, "Janusz", "Askiewicz", 5, 4);
            Oficer o3 = new Oficer(6, "Marian", "Nowak", 2, 3);

            o1.PrzedstawSie();
            o2.PrzedstawSie();
            o3.PrzedstawSie();

            Zolnierz zz1 = new Zolnierz(1, "Andrzej", "Mickiewicz", "zadne", 20);
            Zolnierz zz2 = new Zolnierz(2, "Julisz", "Slowacki", "male", 80);
            Zolnierz zz3 = new Zolnierz(3, "Tadeusz", "Krakiewicz", "duze", 130);
            Zolnierz zz4 = new Zolnierz(1, "Roman", "Grom", "male", 190);

            zz1.PrzedstawSie();
            zz2.PrzedstawSie();
            zz3.PrzedstawSie();
            zz4.PrzedstawSie();

            Console.WriteLine("---- Etap 2 ----");
            Console.WriteLine("Do zadan specjalnych melduja sie:");
            ZolnierzZawodowy[] zolnierze = { o1, zz1, o2, zz2, zz3, o3, zz4 };
            Wojsko             wojsko    = new Wojsko(zolnierze);

            //tutaj wywolaj metode JednostkiSpecjalne() i "przedstaw" wszystkich zwroconych zolnierzy

            List <ZolnierzZawodowy> lista = wojsko.JednostkiSpecjalne();
            Oficer   o = new Oficer(0, "", "", 0, 0);
            Zolnierz z = new Zolnierz(0, "", "", "", 0);

            foreach (ZolnierzZawodowy x in lista)
            {
                if (x is Oficer)
                {
                    o = (Oficer)x;
                    o.PrzedstawSie();
                }
                else if (x is Zolnierz)
                {
                    z = (Zolnierz)x;
                    z.PrzedstawSie();
                }
            }
            Console.WriteLine("---- Etap 3 ----");

            var TupleList = wojsko.SparujZolnierzy();
            int i         = 1;

            foreach (var tuple in TupleList)
            {
                Console.WriteLine("Para {0} melduje sie na rozkaz  ", i);
                //tuple.Item1.PrzedstawSie();
                // tuple.Item2.PrzedstawSie();

                if (tuple.Item1 is Oficer)
                {
                    o = (Oficer)tuple.Item1;
                    o.PrzedstawSie();
                }
                else if (tuple.Item1 is Zolnierz)
                {
                    z = (Zolnierz)tuple.Item1;
                    z.PrzedstawSie();
                }



                if (tuple.Item2 is Oficer)
                {
                    o = (Oficer)tuple.Item2;
                    o.PrzedstawSie();
                }
                else if (tuple.Item2 is Zolnierz)
                {
                    z = (Zolnierz)tuple.Item2;
                    z.PrzedstawSie();
                }



                ++i;
            }
        }