public static PokretnaFlota Ucitaj(PodaciCitac ulaz, Dictionary <int, Dizajn> dizajnovi, Dictionary <int, Zvijezda> zvijezdeID) { int id = ulaz.podatakInt(PohId); double x = ulaz.podatakDouble(PohX); double y = ulaz.podatakDouble(PohY); int polaznaZvjId = ulaz.podatakInt(PohPolaznaZvj); int odredisnaZvjId = ulaz.podatakInt(PohOdredisnaZvj); PokretnaFlota flota = new PokretnaFlota( zvijezdeID[polaznaZvjId], zvijezdeID[odredisnaZvjId], id, x, y); int brBrodova = ulaz.podatakInt(Brod.PohranaTip); for (int i = 0; i < brBrodova; i++) { flota.dodajBrod(Brod.Ucitaj(ulaz[Brod.PohranaTip + i], dizajnovi)); } List <Kolonizacija> kolonizacije = new List <Kolonizacija>(); for (int i = 0; i < ulaz.podatakInt(Kolonizacija.PohranaTip); i++) { kolonizacije.Add(Kolonizacija.Ucitaj( ulaz[Kolonizacija.PohranaTip + i], dizajnovi, flota)); } flota.kolonizacije.AddRange(kolonizacije); return(flota); }
public static Zgrada Ucitaj(PodaciCitac ulaz) { ZgradaInfo tip = ZgradaInfoID[ulaz.podatakInt(PohTip)]; long kolicina = ulaz.podatakLong(PohKolicina); return(new Zgrada(tip, kolicina)); }
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)); }
public static Kolonizacija Ucitaj(PodaciCitac ulaz, Dictionary <int, Dizajn> dizajnovi, Flota flota) { return(new Kolonizacija( ulaz.podatakInt(PohPlanet), flota[dizajnovi[ulaz.podatakInt(PohBrodovi)]], ulaz.podatakLong(PohBrBrodova))); }
public static Flota Ucitaj(PodaciCitac ulaz, Dictionary <int, Dizajn> dizajnovi) { int id = ulaz.podatakInt(PohId); double x = ulaz.podatakDouble(PohX); double y = ulaz.podatakDouble(PohY); Flota flota = new Flota(x, y, id); int brBrodova = ulaz.podatakInt(Brod.PohranaTip); for (int i = 0; i < brBrodova; i++) { flota.dodajBrod(Brod.Ucitaj(ulaz[Brod.PohranaTip + i], dizajnovi)); } List <Kolonizacija> kolonizacije = new List <Kolonizacija>(); for (int i = 0; i < ulaz.podatakInt(Kolonizacija.PohranaTip); i++) { kolonizacije.Add(Kolonizacija.Ucitaj( ulaz[Kolonizacija.PohranaTip + i], dizajnovi, flota)); } flota.kolonizacije.AddRange(kolonizacije); return(flota); }
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)); }
public static Brod Ucitaj(PodaciCitac ulaz, Dictionary <int, Dizajn> dizajnovi) { Dizajn dizajn = dizajnovi[ulaz.podatakInt(PohDizajn)]; long kolicina = ulaz.podatakLong(PohKolicina); double izdrzljivostOklopa = ulaz.podatakDouble(PohIzdrzljivost); return(new Brod(dizajn, kolicina, izdrzljivostOklopa)); }
public new static Poruka Ucitaj(PodaciCitac ulaz, Dictionary <int, Zvijezda> zvijezdeID, Dictionary <int, Dizajn> dizajnID) { Zvijezda zvj = zvijezdeID[ulaz.podatakInt(PohIzvor)]; Dizajn dizajn = dizajnID[ulaz.podatakInt(PohDizajn)]; long kolicina = ulaz.podatakLong(PohKolicina); return(new PorukaBrod(zvj, dizajn, kolicina)); }
public static Poruka Ucitaj(PodaciCitac ulaz, Dictionary <int, Zvijezda> zvijezdeID) { string[] izvor = ulaz.podatak(PohIzvor).Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); Zvijezda zvj = zvijezdeID[int.Parse(izvor[0])]; int zgradaId = ulaz.podatakInt(PohZgrada); return(new PorukaZgradaSustav(zvj, Zgrada.ZgradaInfoID[zgradaId])); }
public static Poruka Ucitaj(PodaciCitac ulaz, Dictionary <int, Zvijezda> zvijezdeID) { string[] izvor = ulaz.podatak(PohIzvor).Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); Zvijezda zvj = zvijezdeID[int.Parse(izvor[0])]; int planetId = int.Parse(izvor[1]); return(new PorukaKolonija(zvj.planeti[planetId])); }
public static Planet Ucitaj(PodaciCitac ulaz, Zvijezda zvijezda, int pozicija) { Tip tip = (Tip)ulaz.podatakInt(PohTip); int velicina = ulaz.podatakInt(PohVelicina); double kvalitetaAtmosfere = ulaz.podatakDouble(PohAtmKval); double gustocaAtmosfere = ulaz.podatakDouble(PohAtmGust); double mineraliPovrsinski = ulaz.podatakDouble(PohMineralPov); double mineraliDubinski = ulaz.podatakDouble(PohMineralDub); return(new Planet(tip, pozicija, zvijezda, velicina, kvalitetaAtmosfere, gustocaAtmosfere, mineraliPovrsinski, mineraliDubinski)); }
public static Poruka Ucitaj(PodaciCitac ulaz) { string[] nivoITip = ulaz.podatak(PohNivo).Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); long nivo = long.Parse(nivoITip[0]); int tehnoId = ulaz.podatakInt(PohTehno); if (nivoITip[1] == Istrazivanje) { return(new PorukaTehnologija(Tehnologija.TechInfo.tehnologijeIstrazivanje[tehnoId], nivo, true)); } else { return(new PorukaTehnologija(Tehnologija.TechInfo.tehnologijeRazvoj[tehnoId], nivo, false)); } }
public static Zvijezda Ucitaj(PodaciCitac ulaz, int id) { int tip = ulaz.podatakInt(PohTip); double x = ulaz.podatakDouble(PohX); double y = ulaz.podatakDouble(PohY); double velicina = ulaz.podatakDouble(PohVelicina); string ime = ulaz.podatak(PohIme); Zvijezda zvj = new Zvijezda(id, tip, x, y, velicina, ime); if (tip >= 0) { for (int i = 0; i < Mapa.GraditeljMape.BR_PLANETA; i++) { zvj.planeti.Add(Planet.Ucitaj(ulaz[Planet.PohranaTip + i], zvj, i)); } } return(zvj); }
public static Mapa Ucitaj(PodaciCitac ulaz) { int brZvjezda = ulaz.podatakInt(PohBrZijezda); List <Zvijezda> zvijezde = new List <Zvijezda>(); List <int[]> tmpCrvotocine = new List <int[]>(); for (int i = 0; i < brZvjezda; i++) { zvijezde.Add(Zvijezda.Ucitaj(ulaz[Zvijezda.PohranaTip + i], i)); tmpCrvotocine.Add(Zvijezda.UcitajCrvotocine(ulaz[Zvijezda.PohranaTip + i])); } for (int i = 0; i < brZvjezda; i++) { foreach (int veza in tmpCrvotocine[i]) { zvijezde[i].crvotocine.Add(zvijezde[veza]); } } return(new Mapa(zvijezde)); }
public static Tehnologija Ucitaj(PodaciCitac ulaz) { Kategorija kategorija = (Kategorija)ulaz.podatakInt(PohKategorija); TechInfo info = null; int id = ulaz.podatakInt(PohId); if (kategorija == Kategorija.ISTRAZIVANJE) { info = TechInfo.tehnologijeIstrazivanje[id]; } else { info = TechInfo.tehnologijeRazvoj[id]; } long nivo = ulaz.podatakLong(PohNivo); long ulozeno = ulaz.podatakLong(PohUlozeno); return(new Tehnologija(info, nivo, ulozeno)); }
public static Poruka Ucitaj(PodaciCitac ulaz, Dictionary <int, Zvijezda> zvijezdeID, Dictionary <int, Dizajn> dizajnID) { int tip = ulaz.podatakInt(PohTip); switch ((Tip)tip) { case Tip.Tehnologija: return(PorukaTehnologija.Ucitaj(ulaz)); case Tip.Kolonija: return(PorukaKolonija.Ucitaj(ulaz, zvijezdeID)); case Tip.Brod: return(PorukaBrod.Ucitaj(ulaz, zvijezdeID, dizajnID)); case Tip.ZgradaKolonija: return(PorukaZgradaKolonija.Ucitaj(ulaz, zvijezdeID)); default: throw new ArgumentException(); } }
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)); }
public static IgraZvj Ucitaj(string ulaz) { PodaciCitac citac = PodaciCitac.Procitaj(ulaz); int brKruga = citac.podatakInt(PohKrug); int trenutniIgrac = citac.podatakInt(PohTrenutniIgrac); int brIgraca = citac.podatakInt(PohBrIgraca); Mapa mapa = Mapa.Ucitaj(citac[Mapa.PohranaTip]); List <Igrac> igraci = new List <Igrac>(); for (int i = 0; i < brIgraca; i++) { Igrac igrac = Igrac.Ucitaj(citac[Igrac.PohranaTip + i], mapa); if (igrac.tip == Igrac.Tip.RACUNALO) { igrac.Upravljac = new ORIKoordinator(igrac); } igraci.Add(igrac); } Dictionary <int, Zvijezda> zvijezdeID = new Dictionary <int, Zvijezda>(); foreach (Zvijezda zvj in mapa.zvijezde) { zvijezdeID.Add(zvj.id, zvj); } Dictionary <int, Zgrada.ZgradaInfo> zgradeInfoID = new Dictionary <int, Zgrada.ZgradaInfo>(Zgrada.ZgradaInfoID); foreach (Igrac igrac in igraci) { foreach (DizajnZgrada dizajZgrada in igrac.dizajnoviBrodova) { zgradeInfoID.Add(dizajZgrada.id, dizajZgrada); Dizajn.ProvjeriId(dizajZgrada.dizajn); } } int brKolonija = citac.podatakInt(Kolonija.PohranaTip); for (int i = 0; i < brKolonija; i++) { Kolonija kolonija = Kolonija.Ucitaj( citac[Kolonija.PohranaTip + i], igraci, zvijezdeID, zgradeInfoID); kolonija.planet.kolonija = kolonija; } int brUprava = citac.podatakInt(ZvjezdanaUprava.PohranaTip); for (int i = 0; i < brUprava; i++) { ZvjezdanaUprava zvjUprava = ZvjezdanaUprava.Ucitaj( citac[ZvjezdanaUprava.PohranaTip + i], igraci, zvijezdeID, zgradeInfoID); zvjUprava.LokacijaZvj.uprave[zvjUprava.Igrac.id] = zvjUprava; } return(new IgraZvj(igraci, trenutniIgrac, mapa, brKruga)); }
public static int[] UcitajCrvotocine(PodaciCitac ulaz) { return(ulaz.podatakIntPolje(PohCrvotocine)); }
public static Dizajn Ucitaj(PodaciCitac ulaz) { int id = ulaz.podatakInt(PohId); string ime = ulaz.podatak(PohIme); int pozeljnaPozicija = ulaz.podatakInt(PohPozicija); UcitanaKomp komp = ucitajKomponentu(ulaz.podatak(PohTrup)); Trup trup = Trup.TrupInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo); Zbir <Oruzje> primOruzje; if (ulaz.ima(PohPrimOruzje)) { komp = ucitajKomponentu(ulaz.podatak(PohPrimOruzje)); primOruzje = new Zbir <Oruzje>( Oruzje.OruzjeInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo), komp.kolicina); } else { primOruzje = new Zbir <Oruzje>(null, 0); } Zbir <Oruzje> sekOruzje; if (ulaz.ima(PohSekOruzje)) { komp = ucitajKomponentu(ulaz.podatak(PohSekOruzje)); sekOruzje = new Zbir <Oruzje>( Oruzje.OruzjeInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo), komp.kolicina); } else { sekOruzje = new Zbir <Oruzje>(null, 0); } double udio = ulaz.podatakDouble(PohUdioPrimOruzja); Stit stit = null; if (ulaz.ima(PohStit)) { komp = ucitajKomponentu(ulaz.podatak(PohStit)); stit = Stit.StitInfo. IzIda(komp.idInfa). naciniKomponentu(komp.nivo, trup.VelicinaStita); } MZPogon mzPogon = null; if (ulaz.ima(PohMZPogon)) { komp = ucitajKomponentu(ulaz.podatak(PohMZPogon)); mzPogon = MZPogon.MZPogonInfo. IzIda(komp.idInfa). naciniKomponentu(komp.nivo, trup.VelicinaMZPogona); } komp = ucitajKomponentu(ulaz.podatak(PohOklop)); Oklop oklop = Oklop.OklopInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo); komp = ucitajKomponentu(ulaz.podatak(PohSenzor)); Senzor senzor = Senzor.SenzorInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo); komp = ucitajKomponentu(ulaz.podatak(PohPotisnici)); Potisnici potisnici = Potisnici.PotisnikInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo); komp = ucitajKomponentu(ulaz.podatak(PohReaktor)); Reaktor reaktor = Reaktor.ReaktorInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo, trup.VelicinaReaktora); int brSpecOp = ulaz.podatakInt(PohSpecOp); Dictionary <SpecijalnaOprema, int> specOprema = new Dictionary <SpecijalnaOprema, int>(); for (int i = 0; i < brSpecOp; i++) { komp = ucitajKomponentu(ulaz.podatak(PohSpecOp + i)); SpecijalnaOprema so = SpecijalnaOprema.SpecijalnaOpremaInfo. IzIda(komp.idInfa). naciniKomponentu(komp.nivo, trup.velicina); specOprema.Add(so, komp.kolicina); } return(new Dizajn(id, ime, trup, primOruzje.komponenta, sekOruzje.komponenta, udio, oklop, stit, specOprema, senzor, potisnici, mzPogon, reaktor, pozeljnaPozicija)); }