Exemple #1
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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")