def __lue_kentan_nimi(self): nimi = self.__nimi.text() validi = Kentan_tallentaja.tarkista_nimi(nimi) nimi += ".txt" # jos on false, nimen mukainen kenttä löytyi if validi is False: nimi, x, y, ruudut, yksikot = self.__kartan_lukija.lue_kartta(nimi) koko = (x, y) self.__koko_x = koko[0] self.__koko_y = koko[1] self.__kartta = Kartta(koko[0], koko[1], ruudut, self) self.__aseta_scene_rect(koko[0], koko[1]) # luodaan maastot ja lisätään yksiköt vasta koko kartan luomisen jälkeen, kun kaikki ruudut ovat paikallaan for ruutu in self.__kartta.ruudut: ruutu.luo_maasto() ruutu.luo_grafiikka() ruutu.etsi_kartta() self.__kartta.lisaa_yksikot(yksikot, self.__paavalikko.yksikoiden_lukija.yksikot) self.__editoi_kenttaa = True self.__muokkaa_vanhaa = True self.__editoi_kenttaa_napit(self.__editoi_kenttaa) else: pass
def __piirra_kartta(self, nimi): x, y, ruudut, yksikot = self.__paavalikko.kartan_lukija.kartat[nimi] koko = (x, y) self.__koko_x = koko[0] self.__koko_y = koko[1] self.__kartta = Kartta(koko[0], koko[1], ruudut, self) self.__aseta_scene_rect(koko[0], koko[1]) # lisätään maastot ja yksiköt vasta koko kartan luomisen jälkeen, kun kaikki ruudut ovat paikallaan for ruutu in self.__kartta.ruudut: ruutu.luo_maasto() ruutu.luo_grafiikka() ruutu.etsi_kartta() self.__kartta.lisaa_yksikot(yksikot, self.__paavalikko.yksikoiden_lukija.yksikot)
def __piirra_tyhja_kartta(self): self.__tyhjenna_kartta() ruudut = [["tasanko" for i in range(self.__koko_y)] for j in range(self.__koko_x)] self.__kartta = Kartta(self.__koko_x, self.__koko_y, ruudut, self) for ruutu in self.__kartta.ruudut: ruutu.luo_maasto(True) ruutu.luo_grafiikka(True) ruutu.etsi_kartta() self.__aseta_scene_rect(self.__koko_x, self.__koko_y) # nappien muutokset self.__editoi_kenttaa = True self.__editoi_kenttaa_napit(self.__editoi_kenttaa)
def __init__(self, kartan_nimi, paavalikko, luo_yksikot=True): self.__paavalikko = paavalikko self.__tallentaja = Pelin_tallentaja(self) self.__kayttoliittyma = Kayttoliittyma(self) self.__vuoro = "PLR" # PLR = pelaaja, COM = tietokone self.__viive = paavalikko.kayttoliittyman_lukija.viive # kartan lukeminen self.__kartan_lukija = paavalikko.kartan_lukija x, y, ruudut, yksikot = self.__kartan_lukija.kartat[kartan_nimi] self.__koko = (x, y) self.__nimi = kartan_nimi self.__kartta = Kartta(self.__koko[0], self.__koko[1], ruudut, self.__kayttoliittyma) self.__kayttoliittyma.aseta_scene_rect(self.__koko[0], self.__koko[1]) # lukeminen self.__maaston_lukija = paavalikko.maastojen_lukija self.__yksikoiden_lukija = paavalikko.yksikoiden_lukija # maastojen luonti tehdään vasta koko kartan luomisen jälkeen, kun kaikki ruudut ovat paikallaan for ruutu in self.__kartta.ruudut: ruutu.luo_maasto() ruutu.luo_grafiikka() # maastot täytyy luoda ensin, jotta saadaan naapurit, joihin liikkuminen on mahdollista for ruutu in self.__kartta.ruudut: ruutu.etsi_naapurit() # vasta lopuksi luodaan yksiköt if luo_yksikot: self.__kartta.lisaa_yksikot(yksikot, self.__yksikoiden_lukija.yksikot) # polunhaku self.__polunhaku = Polunhaku() # tekoälyn ohjain self.__tekoalyn_ohjain = Tekoalyn_ohjain(self) # nappien alkutila self.kayttoliittyma.paivita_nappien_aktiivisuus() # ohjetekstin alkutila self.__kayttoliittyma.muuta_ohjeteksti("PELAAJAN VUORO\n")