Exemple #1
0
        public static Kolonija Ucitaj(PodaciCitac ulaz, List <Igrac> igraci,
                                      Dictionary <int, Zvijezda> zvijezde,
                                      Dictionary <int, Zgrada.ZgradaInfo> zgradeInfoID)
        {
            Igrac  igrac  = igraci[ulaz.podatakInt(PohIgrac)];
            Planet planet = zvijezde[ulaz.podatakInt(PohZvijezda)].
                            planeti[ulaz.podatakInt(PohPlanet)];
            long   populacija  = ulaz.podatakLong(PohPopulacija);
            long   radnaMjesta = ulaz.podatakLong(PohRadnaMj);
            double civilnaInd  = ulaz.podatakDouble(PohCivGradUdio);
            Dictionary <string, double> ostatakGradnje = ulaz.podatakDoubleRjecnik(PohCivGradOst);

            int           brZgrada = ulaz.podatakInt(PohZgrada);
            List <Zgrada> zgrade   = new List <Zgrada>();

            for (int i = 0; i < brZgrada; i++)
            {
                zgrade.Add(Zgrada.Ucitaj(ulaz[PohZgrada + i]));
            }

            int[] zgradeID = ulaz.podatakIntPolje(PohCivGrad);
            LinkedList <Zgrada.ZgradaInfo> redCivilneGradnje = new LinkedList <Zgrada.ZgradaInfo>();

            for (int i = 0; i < zgradeID.Length; i++)
            {
                redCivilneGradnje.AddLast(zgradeInfoID[zgradeID[i]]);
            }

            return(new Kolonija(igrac, planet, populacija, radnaMjesta, civilnaInd,
                                zgrade, ostatakGradnje, redCivilneGradnje));
        }
Exemple #2
0
        public static ZvjezdanaUprava Ucitaj(PodaciCitac ulaz, List <Igrac> igraci,
                                             Dictionary <int, Zvijezda> zvijezde,
                                             Dictionary <int, Zgrada.ZgradaInfo> zgradeInfoID)
        {
            Igrac    igrac    = igraci[ulaz.podatakInt(PohIgrac)];
            Zvijezda zvijezda = zvijezde[ulaz.podatakInt(PohZvijezda)];
            double   udioInd  = ulaz.podatakDouble(PohGradUdio);
            Dictionary <string, double> ostatakGradnje = ulaz.podatakDoubleRjecnik(PohGradOst);

            int           brZgrada = ulaz.podatakInt(PohZgrada);
            List <Zgrada> zgrade   = new List <Zgrada>();

            for (int i = 0; i < brZgrada; i++)
            {
                zgrade.Add(Zgrada.Ucitaj(ulaz[PohZgrada + i]));
            }

            int[] zgradeID = ulaz.podatakIntPolje(PohGrad);
            LinkedList <Zgrada.ZgradaInfo> redCivilneGradnje = new LinkedList <Zgrada.ZgradaInfo>();

            for (int i = 0; i < zgradeID.Length; i++)
            {
                redCivilneGradnje.AddLast(zgradeInfoID[zgradeID[i]]);
            }

            return(new ZvjezdanaUprava(zvijezda, igrac, ostatakGradnje, udioInd,
                                       redCivilneGradnje, zgrade));
        }
Exemple #3
0
        public static Igrac Ucitaj(PodaciCitac ulaz, Mapa mapa)
        {
            Tip tip = Tip.COVJEK;

            if (ulaz.podatak(PohTip) != PohTipCovjek)
            {
                tip = Tip.RACUNALO;
            }

            int          id           = ulaz.podatakInt(PohId);
            string       ime          = ulaz.podatak(PohIme);
            Organizacija organizacija = Organizacija.lista[ulaz.podatakInt(PohOrganizacija)];
            Color        boja         = OdrediBoju(ulaz.podatak(PohBoja));

            foreach (Color color in BojeIgraca)
            {
                if (boja.R == color.R && boja.G == color.G && boja.B == color.B)
                {
                    boja = color;
                }
            }

            Zvijezda odabranaZvj   = OdrediOdabranuZvj(mapa, ulaz.podatak(PohPogledZvj));
            Planet   odabranPlanet = odabranaZvj.planeti[ulaz.podatakInt(PohPogledPlanet)];

            Dictionary <int, Zvijezda> zvijezdeID = new Dictionary <int, Zvijezda>();

            foreach (Zvijezda zvj in mapa.zvijezde)
            {
                zvijezdeID.Add(zvj.id, zvj);
            }

            int brDizajnova = ulaz.podatakInt(PohDizajn);
            List <DizajnZgrada> dizajnovi = new List <DizajnZgrada>();

            for (int i = 0; i < brDizajnova; i++)
            {
                Dizajn dizajn = Dizajn.Ucitaj(ulaz[PohDizajn + i]);
                dizajnovi.Add(new DizajnZgrada(dizajn));
            }

            int brTeh = ulaz.podatakInt(PohTehnologija);
            Dictionary <string, Tehnologija> tehnologije = new Dictionary <string, Tehnologija>();

            for (int i = 0; i < brTeh; i++)
            {
                Tehnologija teh = Tehnologija.Ucitaj(ulaz[PohTehnologija + i]);
                tehnologije.Add(teh.tip.kod, teh);
            }
            double koncPoenaRazvoja = ulaz.podatakDouble(PohTehRazKonc);

            int[] tmpIntovi = ulaz.podatakIntPolje(PohTehURazvoju);
            LinkedList <Tehnologija> tehURazvoju = new LinkedList <Tehnologija>();

            foreach (int tehId in tmpIntovi)
            {
                tehURazvoju.AddLast(tehnologije[Tehnologija.TechInfo.tehnologijeRazvoj[tehId].kod]);
            }

            tmpIntovi = ulaz.podatakIntPolje(PohTehUIstraz);
            LinkedList <Tehnologija> tehUIstraz = new LinkedList <Tehnologija>();

            foreach (int tehId in tmpIntovi)
            {
                tehUIstraz.AddLast(tehnologije[Tehnologija.TechInfo.tehnologijeIstrazivanje[tehId].kod]);
            }

            tmpIntovi = ulaz.podatakIntPolje(PohPosjeceneZvj);
            HashSet <Zvijezda> posjeceneZvijezde = new HashSet <Zvijezda>();

            foreach (int zvjId in tmpIntovi)
            {
                posjeceneZvijezde.Add(zvijezdeID[zvjId]);
            }

            Dictionary <int, Dizajn> dizajnID = new Dictionary <int, Dizajn>();

            foreach (DizajnZgrada dizajnZgrada in dizajnovi)
            {
                dizajnID.Add(dizajnZgrada.dizajn.id, dizajnZgrada.dizajn);
            }
            tmpIntovi = ulaz.podatakIntPolje(PohFloteStac);
            MyDictionary <Zvijezda, Flota> floteStacionarne = new MyDictionary <Zvijezda, Flota>();

            for (int i = 0; i < tmpIntovi.Length; i++)
            {
                floteStacionarne.Add(
                    zvijezdeID[tmpIntovi[i]],
                    Flota.Ucitaj(ulaz[PohFloteStac + i], dizajnID));
            }

            int brPokFlota = ulaz.podatakInt(PohFlotePokret);
            MySet <PokretnaFlota> flotePokretne = new MySet <PokretnaFlota>();

            for (int i = 0; i < brPokFlota; i++)
            {
                flotePokretne.Add(PokretnaFlota.Ucitaj(ulaz[PohFlotePokret + i], dizajnID, zvijezdeID));
            }

            int brPoruka = ulaz.podatakInt(PohPoruka);
            LinkedList <Poruka> poruke = new LinkedList <Poruka>();

            for (int i = 0; i < brPoruka; i++)
            {
                poruke.AddLast(Poruka.Ucitaj(ulaz[PohPoruka + i], zvijezdeID, dizajnID));
            }

            return(new Igrac(id, tip, ime, boja, organizacija, odabranaZvj, odabranPlanet,
                             poruke, dizajnovi, tehnologije, tehURazvoju, koncPoenaRazvoja, tehUIstraz,
                             posjeceneZvijezde, floteStacionarne, flotePokretne));
        }
Exemple #4
0
 public static int[] UcitajCrvotocine(PodaciCitac ulaz)
 {
     return(ulaz.podatakIntPolje(PohCrvotocine));
 }