Beispiel #1
0
def paivita_lippujen_maara():
    """
    Päivittää merkattujen ruutujen määrän ja näyttää tiedon peli-ikkunassa.
    """
    kentan_tiedot["lippujen_lkm"] = 0
    for rivi in nakyva_tila["nakyva_kentta"]:
        kentan_tiedot["lippujen_lkm"] += rivi.count("f")
    x = kentan_tiedot["leveys"] * 40 - 53
    haravasto.piirra_tekstia("{}/{}".format(kentan_tiedot["lippujen_lkm"], \
        kentan_tiedot["miinojen_lkm"]), x, 25, fontti="serif", koko=10)
def piirra_kentta():
    """
    Käsittelijäfunktio, joka piirtää kaksiulotteisena listana kuvatun miinakentän
    ruudut näkyviin peli-ikkunaan. Funktiota kutsutaan aina kun pelimoottori pyytää
    ruudun näkymän päivitystä.
    """
    hv.tyhjaa_ikkuna()
    hv.piirra_tausta()
    hv.aloita_ruutujen_piirto()
    for y, ruutu in enumerate(tila["nakyva"]):
        for x, ruutux in enumerate(ruutu):
            hv.lisaa_piirrettava_ruutu(tila["nakyva"][y][x], (x * 40),
                                       (y * 40))
    hv.piirra_ruudut()
    hv.piirra_tekstia("", 1, 1, vari=(0, 0, 0, 255), fontti="serif", koko=32)
Beispiel #3
0
def piirra_kentta():
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    for j, rivi in enumerate(tila["kentta"]):
        for i, ruutu in enumerate(rivi):
            if ruutu != "m" and ruutu != "x":
                haravasto.lisaa_piirrettava_ruutu(
                    ruutu, i * 40, ((ikkunan_korkeus - 90) - j * 40))
            elif ruutu == "m":
                haravasto.lisaa_piirrettava_ruutu(
                    " ", i * 40, ((ikkunan_korkeus - 90) - j * 40))
            elif ruutu == "x":
                haravasto.lisaa_piirrettava_ruutu(
                    "x", i * 40, ((ikkunan_korkeus - 90) - j * 40))
    haravasto.piirra_ruudut()
    haravasto.piirra_tekstia(tila["ohje"], 0, korkeus * 40 + 5)
Beispiel #4
0
def piirra():
    """
    Käsittelijäfunktio, joka piirtää kaksiulotteisena listana kuvatun miinakentän ruudut näkyviin peli-ikkunaan. 
    Funktiota kutsutaan aina kun pelimoottori pyytää ruudun näkymän päivitystä.
    """
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    for indeksi, rivi in enumerate(tila["kentta"]):
        for i, avain in enumerate(rivi):
            haravasto.lisaa_piirrettava_ruutu(avain, i * 40, indeksi * 40)
    haravasto.piirra_ruudut()
    lopputulos = tallennettavat_tiedot["lopputulos"]
    if lopputulos != None:
        if lopputulos == "Häviö":
            haravasto.piirra_tekstia("Hävisit!", 0, len(tila["kentta"]) * 40)
        else:
            haravasto.piirra_tekstia("Voitit!", 0, len(tila["kentta"]) * 40)
Beispiel #5
0
def paivita_kentta():
    #haravasto.tyhjaa_ikkuna()
    #haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    if tila["kentta"][kasittele_hiiri.ykoord][kasittele_hiiri.xkoord] == " ":
        tila["kentta"][kasittele_hiiri.ykoord][kasittele_hiiri.xkoord] = "0"
    haravasto.lisaa_piirrettava_ruutu(
        tila["kentta"][kasittele_hiiri.ykoord][kasittele_hiiri.xkoord],
        kasittele_hiiri.xkoord * 40, kasittele_hiiri.ykoord * 40)
    #y, sisalto = enumerate(tila["kentta"])
    #x, sis = enumerate(sisalto)
    #haravasto.lisaa_piirrettava_ruutu(sis,x * 40, y * 40)
    #for y, sisalto in enumerate(tila["kentta"]):
    #    for x, sis in enumerate(sisalto):
    #            #if sis == " ":sis = "0"
    #            haravasto.lisaa_piirrettava_ruutu(sis, x * 40, y * 40)
    haravasto.piirra_ruudut()
    if tila["kentta"][kasittele_hiiri.ykoord][kasittele_hiiri.xkoord] == "x":
        haravasto.piirra_tekstia("Hävisit h**o!", 0, 0)
Beispiel #6
0
def draw_board():
    """
    Käsittelijäfunktio, joka piirtää kaksiulotteisena listana kuvatun miinakentän
    ruudut näkyviin peli-ikkunaan. Funktiota kutsutaan aina kun pelimoottori pyytää
    ruudun näkymän päivitystä.
    """

    har.tyhjaa_ikkuna()
    har.piirra_tausta()
    if GAME["gameover"]:
        har.piirra_tekstia("hävisit :(", 150,
                           len(GAME["board"]) * SPRITE_WIDTH,
                           (150, 40, 27, 255))
    if GAME["win"]:
        har.piirra_tekstia("VOITIT!!! :)", 150,
                           len(GAME["board"]) * SPRITE_WIDTH,
                           (0, 230, 64, 255))
    har.piirra_tekstia(GAME["time"], 10, len(GAME["board"]) * SPRITE_WIDTH)
    har.aloita_ruutujen_piirto()
    for i, _y_ in enumerate(GAME["board"]):
        for j, _x_ in enumerate(GAME["board"][i]):
            if _x_ != 'x':
                har.lisaa_piirrettava_ruutu(_x_, j * SPRITE_WIDTH,
                                            i * SPRITE_WIDTH)
            elif not GAME["gameover"]:
                har.lisaa_piirrettava_ruutu(' ', j * SPRITE_WIDTH,
                                            i * SPRITE_WIDTH)
            else:
                har.lisaa_piirrettava_ruutu('x', j * SPRITE_WIDTH,
                                            i * SPRITE_WIDTH)
    har.piirra_ruudut()
    if GAME["gameover"] or GAME["win"]:
        center_horizontal = len(GAME["board"][0]) * SPRITE_WIDTH // 2
        center_vertical = len(GAME["board"]) * SPRITE_WIDTH // 2
        if GAME["gameover"]:
            har.piirra_tekstia("Paina mitä vain", center_horizontal - 147,
                               center_vertical, (150, 40, 27, 255))
        elif GAME["win"]:
            har.piirra_tekstia("Paina mitä vain", center_horizontal - 147,
                               center_vertical, (0, 230, 64, 255))
Beispiel #7
0
def piirra_kentta():
    """
    Käsittelijäfunktio, joka piirtää kaksiulotteisena listana kuvatun miinakentän
    ruudut näkyviin peli-ikkunaan. Funktiota kutsutaan aina kun pelimoottori pyytää
    ruudun näkymän päivitystä. Piirtää ikkunan sisällön käyttäen funkioita:
    -tyhjaa_ikkuna (pyyhkii edellisen kierroksen grafiikat pois)
    -piirra_tausta (asettaa ikkunan taustavärin)
    -piirra_tekstia (kirjoittaa ruudulle tekstiä)
    -aloita_ruutujen_piirto (kutsutaan ennen varsinaisen ruudukon piirtoa)
    -lisaa_piirrettava_ruutu (lisää piirrettävän ruudun)
    -piirra_ruudut (piirtää kaikki aloituksen jälkeen lisätyt ruudut)
    """
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    tekstin_korkeus = len(tila["kayttajan_nakyma"]) * 40 + 16
    haravasto.piirra_tekstia("Miinaharava",
                             9,
                             tekstin_korkeus,
                             vari=(0, 0, 0, 255),
                             fontti="serif",
                             koko=14)
    ajastimen_y = len(tila["kayttajan_nakyma"]) * 40 + 4
    aika_tekstina = "Aika: " + str(int(
        tila["ajastin"] / 60)).zfill(2) + ":" + str(
            tila["ajastin"] % 60).zfill(2)
    haravasto.piirra_tekstia(aika_tekstina,
                             9,
                             ajastimen_y,
                             vari=(0, 0, 0, 255),
                             fontti="serif",
                             koko=10)
    haravasto.aloita_ruutujen_piirto()
    for i in range(len(tila["kayttajan_nakyma"][0])):
        x_koordinaatti = 0 + i * 40
        for j in range(len(tila["kayttajan_nakyma"])):
            y_koordinaatti = 0 + j * 40
            haravasto.lisaa_piirrettava_ruutu(tila["kayttajan_nakyma"][j][i],
                                              x_koordinaatti, y_koordinaatti)
    haravasto.piirra_ruudut()
Beispiel #8
0
def piirra_kentta():
    """
    Käsittelijäfunktio, joka piirtää kaksiulotteisena listana kuvatun miinakentän
    ruudut näkyviin peli-ikkunaan. Funktiota kutsutaan aina kun pelimoottori pyytää
    ruudun näkymän päivitystä.

    tyhjaa_ikkuna (pyyhkii edellisen kierroksen grafiikat pois)
    piirra_tausta (asettaa ikkunan taustavärin)
    piirra_tekstia (kirjoittaa ruudulle tekstiä)
    aloita_ruutujen_piirto (kutsutaan ennen varsinaisen ruudukon piirtoa)
    lisaa_piirrettava_ruutu (lisää piirrettävän ruudun)
    piirra_ruudut (piirtää kaikki aloituksen jälkeen lisätyt ruudut)
    """

    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()

    for y, rivi in reversed(list(enumerate(tila["nakyvakentta"]))):
        for x, ruutu in enumerate(rivi):
            haravasto.lisaa_piirrettava_ruutu(ruutu, x * 40, y * 40)

    haravasto.piirra_ruudut()

    tyhjat = sum(x.count(' ') for x in tila["nakyvakentta"])
    liput = sum(x.count('f') for x in tila["nakyvakentta"])

    if tyhjat + liput == tila["miinat"]:
        tila["end_time"] = time.time()
        tila["playerWon"] = True
        tila["nakyvakentta"] = tila["kentta"]
        tila["gameRunning"] = False

    if tila["gameRunning"] == False and tila["playerWon"] == False:
        haravasto.piirra_tekstia("Hävisit", 0, 0, (255, 0, 0, 255),
                                 "Comic Sans MS", 50)
    elif tila["gameRunning"] == False and tila["playerWon"] == True:
        haravasto.piirra_tekstia("Voitit", 0, 60, (255, 0, 0, 255),
                                 "Comic Sans MS", 50)
Beispiel #9
0
def piirra_kentta():
    """
    Käsittelijäfunktio, joka piirtää kentän ruudut näkyviin peli-ikkunaan. 
    Funktiota kutsutaan aina kun peli pyytää ruudun näkymän päivitystä.
    Piirtää myös käytettyjen lippujen sekä miinojen määrän näkyviin.
    """
    kentta = tila["kentta"]
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    for i, rivi in enumerate(reversed(kentta)):
        for j, sarake in enumerate(rivi):
            if sarake == "fx":
                haravasto.lisaa_piirrettava_ruutu("f", j * 40, i * 40)
            elif sarake == "x":
                haravasto.lisaa_piirrettava_ruutu(" ", j * 40, i * 40)
            else:
                haravasto.lisaa_piirrettava_ruutu(sarake, j * 40, i * 40)

    haravasto.piirra_ruudut()
    haravasto.piirra_tekstia(
        "Lippuja: {}/{}".format(tila["lippuja"], tila["miinat"]), 0, 0,
        (255, 0, 0, 255), "serif", 15)
Beispiel #10
0
def piirra_ikkuna():
    """
    Käsittelijäfunktio, joka piirtää tulos-ikkunan.
    Funktiota kutsutaan kun peli päättyy.
    """
    if tila["tulos"] == "voitto":
        tulos = "Voitit pelin!"   
    elif tila["tulos"] == "häviö":
        tulos = "Hävisit pelin."
    taso = ("Taso: {}".format(tila["taso"]))
    kesto = ("Pelin kesto: {}".format(tila["aika"]["kesto"]))
        
    tila["tulos_ikkuna"].clear()
    tila["tulos_ikkuna_tausta"].draw()
    haravasto.piirra_tekstia(tulos, 80, 110)
    haravasto.piirra_tekstia(taso, 80, 70, koko=15)
    haravasto.piirra_tekstia(kesto, 80, 40, koko=15)
Beispiel #11
0
def piirra_kentta():
    """
    Käsittelijäfunktio, joka piirtää kaksiulotteisena listana kuvatun miinakentän
    ruudut näkyviin peli-ikkunaan. Funktiota kutsutaan aina kun pelimoottori pyytää
    ruudun näkymän päivitystä.
    """
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    for y, rivi in enumerate(tila["pelaajan_kentta"]):
        for x, avain in enumerate(rivi):
            haravasto.lisaa_piirrettava_ruutu(avain, x * 40, y *40)
    haravasto.piirra_ruudut()
    taso = ("Taso {}".format(tila["taso"]))
    miinat = ("Miinat: {}".format(tila["miinoja_jäljellä"]))
    aika = ("Aika: {}".format(tila["aika"]["reaali_aika"]))

    haravasto.piirra_tekstia(taso, 0, 40 * tila["korkeus"], vari=(0, 0, 0, 255), fontti="serif", koko=15)
    haravasto.piirra_tekstia(miinat, 100, 40 * tila["korkeus"], vari=(0, 0, 0, 255), fontti="serif", koko=15)
    haravasto.piirra_tekstia(aika, 220, 40 * tila["korkeus"], vari=(0, 0, 0, 255), fontti="serif", koko=15)
def piirra_kentta():
    """Käsittelijäfunktio, joka piirtää kaksiulotteisena listana kuvatun miinakentän
    ruudut näkyviin peli-ikkunaan. Funktiota kutsutaan aina kun pelimoottori pyytää
    ruudun näkymän päivitystä."""
    ha.tyhjaa_ikkuna()
    ha.piirra_tausta()
    ha.aloita_ruutujen_piirto()
    for i, sarake in enumerate(tila["kentta"]):
        for j, rivi in enumerate(sarake):
            ha.lisaa_piirrettava_ruutu(rivi, j * 40, i * 40)
    ha.piirra_ruudut()
    if tiedot["lopputulos"] != "Keskeytetty":
        if tiedot["lopputulos"] == "Häviö":
            ha.piirra_tekstia("Hävisit pelin. :(",
                              ((tiedot["leveys"] * 40) / 2) - 128,
                              ((tiedot["korkeus"] * 40) / 2) - 22,
                              vari=(0, 0, 0, 150),
                              fontti="arial",
                              koko=30)
            ha.piirra_tekstia("Hävisit pelin. :(",
                              ((tiedot["leveys"] * 40) / 2) - 130,
                              ((tiedot["korkeus"] * 40) / 2) - 20,
                              vari=(255, 255, 255, 255),
                              fontti="arial",
                              koko=30)
            ha.piirra_tekstia("Peli-ikkuna sulkeutuu klikkaamalla sitä",
                              ((tiedot["leveys"] * 40) / 2) - 139,
                              29,
                              vari=(0, 0, 0, 150),
                              fontti="arial",
                              koko=12)
            ha.piirra_tekstia("Peli-ikkuna sulkeutuu klikkaamalla sitä",
                              ((tiedot["leveys"] * 40) / 2) - 140,
                              30,
                              vari=(255, 255, 255, 255),
                              fontti="arial",
                              koko=12)
            #ha.piirra_tekstia("tai automaattisesti 10 sekunnin päästä", ((tiedot["leveys"] * 40) / 2) - 139, 9, vari=(0, 0, 0, 150), fontti="arial", koko=12)
            #ha.piirra_tekstia("tai automaattisesti 10 sekunnin päästä", ((tiedot["leveys"] * 40) / 2) - 140, 10, vari=(255, 255, 255, 255), fontti="arial", koko=12)
        else:
            ha.piirra_tekstia("Voitit pelin. :)",
                              ((tiedot["leveys"] * 40) / 2) - 123,
                              ((tiedot["korkeus"] * 40) / 2) - 22,
                              vari=(0, 0, 0, 150),
                              fontti="arial",
                              koko=30)
            ha.piirra_tekstia("Voitit pelin. :)",
                              ((tiedot["leveys"] * 40) / 2) - 125,
                              ((tiedot["korkeus"] * 40) / 2) - 20,
                              vari=(255, 255, 255, 255),
                              fontti="arial",
                              koko=30)
            ha.piirra_tekstia("Peli-ikkuna sulkeutuu klikkaamalla sitä",
                              ((tiedot["leveys"] * 40) / 2) - 139,
                              29,
                              vari=(0, 0, 0, 150),
                              fontti="arial",
                              koko=12)
            ha.piirra_tekstia("Peli-ikkuna sulkeutuu klikkaamalla sitä",
                              ((tiedot["leveys"] * 40) / 2) - 140,
                              30,
                              vari=(255, 255, 255, 255),
                              fontti="arial",
                              koko=12)
Beispiel #13
0
def piirra_kentta():
    """
    Käsittelijäfunktio, joka piirtää kaksiulotteisena listana kuvatun
    miinakentän ruudut, kellon, vuoro ja miina laskurin näkyviin
    peli-ikkunaan. Funktiota kutsutaan aina kun pelimoottori pyytää
    ruudun näkymän päivitystä.
    """
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.piirra_tekstia("Aika:", 50, 950, vari=piirto["t_vari"])
    haravasto.piirra_tekstia(tila["aika"], 50, 910, vari=piirto["t_vari"])
    haravasto.piirra_tekstia("Vuoro:", 800, 950, vari=piirto["t_vari"])
    haravasto.piirra_tekstia(str(tila["vuoro"]),
                             800,
                             910,
                             vari=piirto["t_vari"])
    haravasto.piirra_tekstia("Miinoja jäljellä:",
                             350,
                             950,
                             vari=piirto["t_vari"])
    haravasto.piirra_tekstia(str(tila["jaljella"]),
                             350,
                             910,
                             vari=piirto["t_vari"])
    haravasto.aloita_ruutujen_piirto()
    for y, rivi in enumerate(piirto["ruudukko"]):
        for x, merkki in enumerate(rivi):
            haravasto.lisaa_piirrettava_ruutu(
                merkki, x * 40 + tila["vaikeus"]["piirtomarginaali"],
                y * 40 + tila["vaikeus"]["piirtomarginaali"])
    haravasto.piirra_ruudut()
Beispiel #14
0
def alkupiirto():
    haravasto.piirra_tausta()
    haravasto.piirra_tekstia("Paina enter aloittaaksesi uuden pelin", 0, 400,
                             (0, 0, 0, 255), "serif", 21)
    haravasto.piirra_tekstia("Paina esc lopettaaksesi", 0, 300, (0, 0, 0, 255),
                             "serif", 21)