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()
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()
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()
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()
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()
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()
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()