Пример #1
0
def aloita_uusi_peli():
    """
    Alustaa tila-sanakirjan tyhjäksi.
    Tallentaa pelaajan valitseman tason, tasoa vastaavan miinojen lukumäärän
    sekä pelikentän leveyden ja korkeuden tila-sanakirjaan.     
    Luo erikseen tyhjän pelikentän ja tyhjän pelaajankentän, jotka tallenetaan 
    tila-sanakirjaan. Luo listan vapaista ruuduista, miinoittaa pelikentän ja 
    asettaa numerot miinojen ympärille pelikentällä.
    Lataa ohjelman käyttämät kuvat, luo peli_ikkunan, asettaa piirtokäsittelijän
    ja hiirenkäsittelijän. Aloittaa pelin. Tallentaa pelin aloitusajan.
    """
    alusta_tila()
    tila["taso"], tila["miinojen_lkm"], tila["leveys"], tila["korkeus"] = kysy_taso() 
    tila["miinoja_jäljellä"] = tila["miinojen_lkm"]
    tila["peli_kentta"] = luo_kentta(tila["leveys"], tila["korkeus"])
    tila["pelaajan_kentta"] = luo_kentta(tila["leveys"], tila["korkeus"])
    vapaat_ruudut = luo_vapaat_ruudut(tila["leveys"], tila["korkeus"])
    miinoita(tila["peli_kentta"], vapaat_ruudut, tila["miinojen_lkm"])
    aseta_numerot()
    
    haravasto.lataa_kuvat("spritet")
    haravasto.luo_ikkuna(40 * tila["leveys"], 40 * tila["korkeus"] + 30) #säädetään ikkunan koko
    haravasto.aseta_piirto_kasittelija(piirra_kentta)
    tila["aika"]["aloitus_aika"] = time.perf_counter()
    haravasto.aseta_hiiri_kasittelija(kasittele_hiiri)
    haravasto.aseta_toistuva_kasittelija(paivitys_kasittelija, 1/10)
    haravasto.aloita()            
Пример #2
0
def game():
    """
    Function to start the game and start timer and make sure mouse input is taken
    """
    haravasto.aseta_hiiri_kasittelija(handleClick)
    haravasto.aseta_toistuva_kasittelija(timeCounter, 1 / 60)
    haravasto.aloita()
Пример #3
0
def mainpeli():
    '''Itse miinaharavan main funktio'''
    peli["start"] = time.time()
    hav.lataa_kuvat("spritet")
    hav.luo_ikkuna(peli["leveys"] * 40, peli["korkeus"] * 40)
    hav.aseta_piirto_kasittelija(piirra_kentta)
    hav.aseta_hiiri_kasittelija(kasittele_hiiri)
    hav.aseta_toistuva_kasittelija(toistuva_kasittelija, 1 / 4)
    hav.aloita()
Пример #4
0
def start():
    """
    lataa grafiikat, asettaa kasittelijat ja avaa peli-ikkunan
    """
    har.lataa_kuvat("spritet")
    har.luo_ikkuna(len(GAME["board"][0] * SPRITE_WIDTH),
                   len(GAME["board"]) * SPRITE_WIDTH + 50,
                   (255, 255, 255, 200))
    har.aseta_hiiri_kasittelija(mouse_handler)
    har.aseta_nappain_kasittelija(keyboard_handler)
    har.aseta_piirto_kasittelija(draw_board)
    har.aseta_toistuva_kasittelija(timer, 1)
    har.aloita()
Пример #5
0
def kentan_grafiikka():
    """
    Lataa pelin grafiikat, luo peli-ikkunan ja asettaa siihen piirtokäsittelijän,
    hiirikäsittelijän ja toistuvan käsittelijän.
    """
    korkeus = (len(kentat["piirtokentta"])) * 40
    leveys = (len(kentat["piirtokentta"][0])) * 40
    haravasto.lataa_kuvat("spritet")
    haravasto.luo_ikkuna(leveys, korkeus)
    haravasto.aseta_piirto_kasittelija(piirra_kentta)
    haravasto.aseta_hiiri_kasittelija(hiiri_kasittelija)
    haravasto.aseta_toistuva_kasittelija(paivitys_kasittelija, 1/60)
    haravasto.aloita()
Пример #6
0
def aloita_peli():
    """
    Aloittaa uuden pelin. Tallentaa tilastot ja nollaa sanakirjat,
    kun peli loppuu.
    """
    while True:
        nimi = input("Anna käyttäjänimi(max 8 merkkiä): ").strip()
        if len(nimi) > 8:
            print("Nimi on liian pitkä")
        elif nimi == "":
            print("Anna jokin nimi")
        elif "," in nimi:
            print("Pilkku ei ole sallittu")
        else:
            tila["nimi"] = nimi
            break
    print("Valitse vaikeusaste:")
    print("(H)elppo")
    print("(N)ormaali")
    print("(V)aikea")
    while True:
        syote = input("Valinta: ").strip().lower()
        if syote == "h":
            tila["vaikeus"] = VAIKEUSASTEET["helppo"]
            break
        elif syote == "n":
            tila["vaikeus"] = VAIKEUSASTEET["normaali"]
            break
        elif syote == "v":
            tila["vaikeus"] = VAIKEUSASTEET["vaikea"]
            break
        else:
            print("Anna oikea syöte!(h, n, v)")
    print("Ohjeet: Klikkaa hiiren vasemmalla näppäimellä ruutua,")
    print("jonka haluat avata. Klikkaa oikealla asettaaksesi lipun.")
    print("Peli päätty, kun osut miinaan tai kentällä ei ole ruutuja,")
    print("joita ei ole avattu tai niissä on lippu.")
    input("--Paina ENTER aloittaaksesi pelin--")
    luo_kentta()
    piirto["ruudukko"] = tila["naytto"]
    haravasto.lataa_kuvat("spritet")
    haravasto.luo_ikkuna(leveys=1000, korkeus=1000, taustavari=(0, 2, 71, 255))
    haravasto.aseta_piirto_kasittelija(piirra_kentta)
    haravasto.aseta_hiiri_kasittelija(kasittele_hiiri)
    haravasto.aseta_toistuva_kasittelija(paivita_peli)
    haravasto.aloita()
    tallenna_tilastot()
    nollaa_sanakirjat()
Пример #7
0
def main():
    """
    Lataa pelin grafiikat, luo peli-ikkunan ja asettaa siihen piirtokäsittelijän. Tekee abaut kaiken.
    """
    tila["ajastin"] = 0
    tulos["klikkaukset"] = 0
    tulos["pisteet"] = 0
    pvm_kello = str(datetime.today())[:19]
    pvm, kello = pvm_kello.split(" ")
    tulos["pvm"] = pvm
    tulos["kello"] = kello
    print("Määritä haluamasi kentän mitat")
    while True:
        try:
            leveys = int(input("Ruutujen määrä X-suunnassa (kokonaisluku): "))
            korkeus = int(input("Ruutujen määrä Y-suunnassa (kokonaisluku): "))
            miinat = int(input("Anna miinojen lukumäärä (kokonaisluku): "))
            if leveys < 2 or korkeus < 2:
                print(
                    "\nKentän sivujen tulee olla vähintään 2 ruutua ja enintään 100 ruutua, koitappa vielä\n"
                )
                continue
            elif leveys > 100 or korkeus > 100:
                print(
                    "\nKentän sivujen tulee olla vähintään 2 ruutua ja enintään 100 ruutua, koitappa vielä\n"
                )
                continue
            tulos["kentan_koko"] = leveys * korkeus
            tulos["lkm_miinat"] = miinat
        except ValueError:
            print("\nEipä ollu kokonaisluku, koitappa vielä\n")
        else:
            break
    muodosta_kentta(leveys, korkeus)
    miinoita(tila["kentta"], miinat)
    laske_miinat_ymparilla(tila["kentta"])
    ikkunan_leveys = int(len(tila["kentta"][0]) * 40)
    ikkunan_korkeus = int(len(tila["kentta"]) * 40) + 40
    haravasto.lataa_kuvat("spritet.zip\spritet")
    haravasto.luo_ikkuna(ikkunan_leveys, ikkunan_korkeus)
    haravasto.aseta_piirto_kasittelija(piirra_kentta)
    haravasto.aseta_hiiri_kasittelija(kasittele_hiiri)
    haravasto.aseta_toistuva_kasittelija(paivitys_kasittelija, 1)
    haravasto.aloita()