Exemplo n.º 1
0
def yllata():
    '''Arpoo pelin kentän koon'''
    peli['korkeus'] = ran.randint(10, 21)
    peli['leveys'] = ran.randint(10, 21)
    pelialue = peli["leveys"] * peli["korkeus"]
    miina_ala = int(pelialue / ran.randint(4, 5))
    miina_yla = int(pelialue / ran.randint(3, 4))
    peli["miinat"] = ran.randint(miina_ala, miina_yla)
    liput["peli"] = True
    iku.lopeta()
def ikkunasto_napin_kasittelija():
    sisaltox = ikkunasto.lue_kentan_sisalto(kysyja.kenttax)
    sisaltoy = ikkunasto.lue_kentan_sisalto(kysyja.kenttay)
    try:
        xy.append(int(sisaltox))
        xy.append(int(sisaltoy))
        ikkunasto.lopeta()
    except ValueError:
        ikkunasto.avaa_viesti_ikkuna("Virhe!",
                                     "positiivisia kokonaislukuja, kiitos.",
                                     True)
Exemplo n.º 3
0
def tallenna_tilastot():
    """
    Tallentaa tilastot tiedostoon
    """
    nimi = ikkunasto.lue_kentan_sisalto(nimikentta)
    if not nimi:
        ikkunasto.kirjoita_tekstilaatikkoon(tallennus_ikkuna_laatikko,
                                            "Anna jokin nimimerkki")
    else:
        with open("tilastot.txt", "a+") as tiedosto:
            tiedosto.write("{},{},{},{},{},{},{},{}\n".format(
                nimi, tila["aloitusaika"], tila["peliaika"],
                tila["voitto"], tila["vuorot"], len(tila["kentta"][0]),
                len(tila["kentta"]), tila["miinat"]))
        ikkunasto.lopeta()
        main()
Exemplo n.º 4
0
def tilastot():
    """
    Luo uuden ikkunan, lukee tilastot tiedostosta ja kirjoittaa 
    ne tekstilaatikkoon. Jos tilastoja tai tiedostoa ei ole, 
    tai niitä ei voi lukea, tulostuu virheviesti.
    """
    ikkunasto.lopeta()
    tilasto_ikkuna = ikkunasto.luo_ikkuna("Tilastot")
    ylakehys = ikkunasto.luo_kehys(tilasto_ikkuna, ikkunasto.YLA)
    alakehys = ikkunasto.luo_kehys(tilasto_ikkuna, ikkunasto.YLA)
    tyhjenna_nappi = ikkunasto.luo_nappi(ylakehys, "Tyhjennä tilastot",
                                         tyhjenna_tilastot)
    takaisin_nappi = ikkunasto.luo_nappi(ylakehys, "Takaisin",
                                         takaisin_nappi_kasittelija)
    global tilastolaatikko
    tilastolaatikko = ikkunasto.luo_tekstilaatikko(alakehys, 70, 30)
    try:
        with open("tilastot.txt") as luku:
            try:
                sisalto = luku.readlines()
                if not sisalto:
                    ikkunasto.kirjoita_tekstilaatikkoon(
                        tilastolaatikko, "Tilastoja ei ole.")
                for rivi in sisalto:
                    voitto = ""
                    lista = rivi.split(",")
                    if lista[3] == "True":
                        voitto = "Voitto"
                    elif lista[3] == "False":
                        voitto = "Häviö"
                    ikkunasto.kirjoita_tekstilaatikkoon(
                        tilastolaatikko,
                        "{}\n{}! Pelaaja: {}. Aika: {}. Vuorot: {}\nKentän koko: {}x{}. Miinoja: {}"
                        .format(lista[1], voitto, lista[0], lista[2], lista[4],
                                lista[5], lista[6], lista[7]))
            except IndexError:
                ikkunasto.kirjoita_tekstilaatikkoon(
                    tilastolaatikko,
                    "Tilastoja ei voida lukea. Tyhjennä tilastot", True)
    except FileNotFoundError:
        ikkunasto.kirjoita_tekstilaatikkoon(tilastolaatikko,
                                            "Tilastoja ei ole.")
Exemplo n.º 5
0
def arvo_kasittelija():
    '''Funktio hakee ja tarkistaa pelaajan antaman arvon. Kentta on
    tekstikenttä johon käyttäjä kirjoittaa, teksti alue johon kirjoitetaan
    tekstiä.'''
    try:
        peli["korkeus"] = int(iku.lue_kentan_sisalto(elementit["korkeus"]))
        peli["leveys"] = int(iku.lue_kentan_sisalto(elementit["leveys"]))
        peli["miinat"] = int(iku.lue_kentan_sisalto(elementit["miinat"]))
        if peli["korkeus"] <= 0 or peli["leveys"] <= 0 or peli["miinat"] <= 0:
            iku.avaa_viesti_ikkuna("Virhe",
                                   "Arvojen täytyy olla suurempia kuin nolla",
                                   True)
        else:
            iku.tyhjaa_kentan_sisalto(elementit["leveys"])
            iku.tyhjaa_kentan_sisalto(elementit["korkeus"])
            iku.tyhjaa_kentan_sisalto(elementit["miinat"])
            liput["peli"] = True
            iku.lopeta()
    except ValueError:
        iku.avaa_viesti_ikkuna("Virhe", "Arvojen täytyy olla kokonaislukuja",
                               True)
Exemplo n.º 6
0
def uusipeli():
    """
    Tarkistaa kentän tiedot ja luo uuden pelin lataamalla grafiikat ja alkutilan 
    sekä luomalla peli-ikkunan ja hiiren käsittelijän.
    """
    korkeus = ikkunasto.lue_kentan_sisalto(korkeuskentta)
    leveys = ikkunasto.lue_kentan_sisalto(leveyskentta)
    miinat = ikkunasto.lue_kentan_sisalto(miinalkmkentta)
    try:
        korkeus = int(korkeus)
        leveys = int(leveys)
        miinat = int(miinat)
    except ValueError:
        ikkunasto.kirjoita_tekstilaatikkoon(
            tekstilaatikko, "Anna kentän tiedot kokonaislukuina!")
    else:
        if miinat < 1 or korkeus < 1 or leveys < 1:
            ikkunasto.kirjoita_tekstilaatikkoon(
                tekstilaatikko, "Arvojen täytyy olla suurempia kuin 0!")
        elif korkeus > 25 or leveys > 45:
            ikkunasto.kirjoita_tekstilaatikkoon(tekstilaatikko,
                                                "Kenttä on liian suuri!")
        elif miinat >= leveys * korkeus:
            ikkunasto.kirjoita_tekstilaatikkoon(tekstilaatikko,
                                                "Liikaa miinoja!")
        else:
            ikkunasto.lopeta()
            tila["alku"] = True
            tila["vuorot"] = 0
            tila["lippuja"] = 0
            tila["miinat"] = miinat
            tila["voitto"] = False
            luo_kentta(leveys, korkeus)
            haravasto.lataa_kuvat("spritet")
            haravasto.luo_ikkuna(
                len(tila["kentta"][0]) * 40,
                len(tila["kentta"]) * 40)
            haravasto.aseta_piirto_kasittelija(piirra_kentta)
            haravasto.aseta_hiiri_kasittelija(kasittele_hiiri)
            haravasto.aloita()
Exemplo n.º 7
0
def back():
    '''Mainmenuun vievä funktio'''
    hav.lopeta()
    iku.lopeta()
Exemplo n.º 8
0
def uusiksi():
    '''Restart nappi periaatteessa'''
    liput['peli'] = True
    iku.lopeta()
    hav.lopeta()
Exemplo n.º 9
0
def lopeta():
    '''Funktio sulkee ohjelman'''
    liput["jatka"] = False
    iku.lopeta()
Exemplo n.º 10
0
def lopeta_nappi_kasittelija():
    """
    Sammuttaa päävalikon.
    """
    ikkunasto.lopeta()
Exemplo n.º 11
0
def takaisin_nappi_kasittelija():
    """
    Palaa päävalikkoon.
    """
    ikkunasto.lopeta()
    main()