Example #1
0
def main(width, height, mineQnt):
    """
    main function to start the game. Loads the pictures from given folder and draws wanted
    squares.

    creates an empty table with given height and width, and after that adds random amount
    of mines on given table.

    @param width: width of the board game is played on
    @param height: height of the board game is played on
    @param mineQnt: quantity of mines in game.
    """
    clearTable()
    haravasto.lataa_kuvat("./spritet")
    board = []
    for rivi in range(height):
        board.append([])
        for sarake in range(width):
            board[-1].append(" ")
    tila["board"] = board

    jaljella = []
    for x in range(height):
        for y in range(width):
            jaljella.append((x, y))

    mineService.miinoita(tila["board"], jaljella, mineQnt)
    haravasto.luo_ikkuna(width * SQSIZE, height * SQSIZE)
    haravasto.piirra_tausta()
    haravasto.aseta_piirto_kasittelija(draw_board)
    game()
    return (tila["time"] - 3, tila["result"], tila["moves"])
Example #2
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()

    y = -40
    for i in kentta:
        y = y + 40
        x = - 40
        for j in i:
            x = x + 40
            haravasto.lisaa_piirrettava_ruutu(" ", x, y)
            if j == "f":
                haravasto.lisaa_piirrettava_ruutu("f", x, y)
            if j == "m":
                haravasto.lisaa_piirrettava_ruutu("x", x, y)
            for k in range(9):
                k = str(k)
                if k == j:
                    haravasto.lisaa_piirrettava_ruutu(k, x, y)
            if statistiikka["peli_paattyi"]:
                if j == "x" or j == "m":
                    haravasto.lisaa_piirrettava_ruutu("x", x, y)
    haravasto.piirra_ruudut()
Example #3
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()
Example #4
0
def piirra_kentta():
    h.tyhjaa_ikkuna()
    h.piirra_tausta()
    h.aloita_ruutujen_piirto()
    for rivi, i in enumerate(tila["kentta"]):
        for sarake, merkki in enumerate(i):
            h.lisaa_piirrettava_ruutu(merkki, 40 * sarake, 40 * rivi)
    h.piirra_ruudut()
Example #5
0
def piirra_kentta():
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    for x, lista in enumerate(tila["pelikentta"]):
        for y, ruutu in enumerate(lista):
            haravasto.lisaa_piirrettava_ruutu(ruutu, x * 40, y * 40)
    haravasto.piirra_ruudut()
Example #6
0
def piirra_kentta():
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    for y, rivi in enumerate(tila["tulostettu_kentta"]):
        for x, ruutu in enumerate(rivi):
            haravasto.lisaa_piirrettava_ruutu(ruutu, x * 40, y * 40)
    haravasto.piirra_ruudut()
def piirra_kentta():
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    for rivi, a in enumerate(tila["kentta"]):
        for ruutu, b in enumerate(a):
            haravasto.lisaa_piirrettava_ruutu(tila["kentta"][rivi][ruutu],
                                              ruutu * 40, rivi * 40)
    haravasto.piirra_ruudut()
Example #8
0
def piirra_kentta():
    """Piirtää piirtää käyttäjän haluaman kokoisen ikkunan. Ikkunan koko on leveys on 40 kertaa kentän leveys. Korkeudella sama"""
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()  
    haravasto.aloita_ruutujen_piirto()
    for y, rivi in enumerate(tila["pelikentta"]):
        for x, avain in enumerate(tila["pelikentta"][y]):
            haravasto.lisaa_piirrettava_ruutu(avain, x * 40, y * 40)
    haravasto.piirra_ruudut()
Example #9
0
def piirra_kentta():
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    #haravasto.piirra_tekstia
    haravasto.aloita_ruutujen_piirto()
    for y, sisalto in enumerate(planeetta):
        for x, sis in enumerate(sisalto):
            haravasto.lisaa_piirrettava_ruutu(sis, x * 40, y * 40)
    haravasto.piirra_ruudut()
Example #10
0
def piirra_kentta():

    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    for y, ruutu in enumerate(kentta_nakyva):
        for x, ruutunen in enumerate(ruutu):
            haravasto.lisaa_piirrettava_ruutu(ruutunen, x * 40, y * 40)

    haravasto.piirra_ruudut()
Example #11
0
def draw_map():
    ha.tyhjaa_ikkuna()
    ha.piirra_tausta()
    ha.aloita_ruutujen_piirto()
    for y, j in enumerate(game.drawMap):
        for x, i in enumerate(j):
            xcoord = x * 40
            ycoord = y * 40
            ha.lisaa_piirrettava_ruutu(i, xcoord, ycoord)
    ha.piirra_ruudut()
Example #12
0
def draw_field():
    #Handler -function, which draws the 2d list minefield to the screen. Function is called every time the game asks to refresh the screen
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    for row_index, row in enumerate(grid):
        for col_index, col in enumerate(row):
            haravasto.lisaa_piirrettava_ruutu(col, row_index * 40,
                                              col_index * 40)
    haravasto.piirra_ruudut()
Example #13
0
def piirra_kentta():
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    #haravasto.piirra_tekstia
    haravasto.aloita_ruutujen_piirto()
    for y, sisalto in enumerate(tila["kentta"]):
        for x, sis in enumerate(sisalto):
            if sis == "x": sis = " "
            haravasto.lisaa_piirrettava_ruutu(sis, x * 40, y * 40)
    haravasto.piirra_ruudut()
Example #14
0
def piirra_kentta():
    haravasto.tyhjaa_ikkuna()
    haravasto.piirra_tausta()
    haravasto.aloita_ruutujen_piirto()
    for x in range(len(sotakentta[0])):
        for y in range(len(sotakentta)):
            avain = sotakentta[(len(sotakentta) - 1) - y][x]
            x_1 = x * 40
            y_1 = y * 40
            haravasto.lisaa_piirrettava_ruutu(avain, x_1, y_1)
    haravasto.piirra_ruudut()
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ä."""
    lista = tila["naytto"]
    harava.tyhjaa_ikkuna()
    harava.piirra_tausta()
    harava.aloita_ruutujen_piirto()
    for i in range(0, len(lista)):
        for j in range(0, len(lista[0])):
            harava.lisaa_piirrettava_ruutu(lista[i][j], j * 40, i * 40)
    harava.piirra_ruudut()
Example #16
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ä.
	"""
	h.tyhjaa_ikkuna()
	h.piirra_tausta()
	h.aloita_ruutujen_piirto()
	for j in range(len(pelikentta["kentta"])):
		for i, avain in enumerate(pelikentta["kentta"][j]):
			h.lisaa_piirrettava_ruutu(avain, i * 40, j * 40)

	h.piirra_ruudut()
Example #17
0
def piirra_peli():
    """
    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['nakyvakentta']):
        for x, merkki in enumerate(rivi):
            haravasto.lisaa_piirrettava_ruutu(merkki, x * 40, y * 40)
            haravasto.piirra_ruudut()
Example #18
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ä.
    """
    h.tyhjaa_ikkuna()
    h.piirra_tausta()
    h.aloita_ruutujen_piirto()
    for i, rivi in enumerate(tila["nakyva"]):
        for j, sarake in enumerate(rivi):
            h.lisaa_piirrettava_ruutu(sarake, j * 40, i * 40)
    h.piirra_ruudut()
Example #19
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ä.
    """
    h.tyhjaa_ikkuna()
    h.piirra_tausta()
    h.aloita_ruutujen_piirto()
    for y, j in enumerate(peliruutu):
        for x, i in enumerate(j):
            h.lisaa_piirrettava_ruutu(i,  x*40, y*40)
    h.piirra_ruudut()
Example #20
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, i in enumerate(kentat["piirtokentta"]):
        for x, ruutu in enumerate(i):
            haravasto.lisaa_piirrettava_ruutu(ruutu, 40*x, 40*y)
    haravasto.piirra_ruudut()
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)
Example #22
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ä.
"""
    hav.tyhjaa_ikkuna()
    hav.piirra_tausta()
    hav.aloita_ruutujen_piirto()
    for y_krd, ruutu_y in enumerate(planeetta):
        print(y_krd, ruutu_y)
        isoy = y_krd * 40
        for x_krd, ruutu_x in enumerate(ruutu_y):
            isox = x_krd * 40
            hav.lisaa_piirrettava_ruutu(ruutu_x, isox, isoy)
    hav.piirra_ruudut()
Example #23
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 i, rivi in enumerate(nakyva_tila["nakyva_kentta"]):
        y = i * 40
        for j, sarake in enumerate(nakyva_tila["nakyva_kentta"][0]):
            x = j * 40
            haravasto.lisaa_piirrettava_ruutu(nakyva_tila["nakyva_kentta"][i][j], x, y)
    haravasto.piirra_ruudut()
    paivita_lippujen_maara()
Example #24
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 ruutu_y, ruutu in enumerate(planeetta):
        y_koodi = ruutu_y * 40
        for ruutu_x, avain in enumerate(ruutu):
            x_koodi = ruutu_x * 40
            haravasto.lisaa_piirrettava_ruutu(avain, x_koodi, y_koodi)

    haravasto.piirra_ruudut()
Example #25
0
def piirra_kentta():
    '''Funktio joka piirtää pelikentän peli-ikkunaan.
    Funktiota kutsutaan aina kun pelimoottori pyytää ruudun päivitystä.'''
    hav.tyhjaa_ikkuna()
    hav.piirra_tausta()
    hav.aloita_ruutujen_piirto()
    for y_krd, ruutu_y in enumerate(kentta["alue"]):
        isoy = y_krd * 40
        for x_krd, ruutu_x in enumerate(ruutu_y):
            isox = x_krd * 40
            if ruutu_x == 'x':
                hav.lisaa_piirrettava_ruutu(' ', isox, isoy)
            elif ruutu_x == 'h':
                hav.lisaa_piirrettava_ruutu('x', isox, isoy)
            else:
                hav.lisaa_piirrettava_ruutu(ruutu_x, isox, isoy)
    hav.piirra_ruudut()
Example #26
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)
Example #27
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 i, rivi in enumerate(tila["kentta"]):
        rivit = rivi
        y = i
        for j, sarakkeet in enumerate(rivit):
            x = j
            haravasto.lisaa_piirrettava_ruutu(tila["kentta"][y][x], x * 40,
                                              y * 40)
    haravasto.piirra_ruudut()
Example #28
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)
Example #29
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)
Example #30
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()
    miinat = 0
    y = 0
    for i in kentta:
        x = 0
        for e in i:
            haravasto.lisaa_piirrettava_ruutu(" ", x * 40, y * 40)
            if e == "l":
                haravasto.lisaa_piirrettava_ruutu("f", x * 40, y * 40)
            if e == "m":
                haravasto.lisaa_piirrettava_ruutu("x", x * 40, y * 40)
            for numero in range(9):
                if e == str(numero):
                    haravasto.lisaa_piirrettava_ruutu(str(numero), x * 40,
                                                      y * 40)
            if pelinTiedot["loppu"]:
                if e == "x" or e == "m":
                    haravasto.lisaa_piirrettava_ruutu("x", x * 40, y * 40)
                if e == "l":
                    if tuple([x, y]) in miinatLippujenAlla:
                        haravasto.lisaa_piirrettava_ruutu("x", x * 40, y * 40)
                        miinatLippujenAlla.remove(tuple([x, y]))
                    else:
                        miinat = laske_miinat(x, y, kentta)
                        for n in range(9):
                            if miinat == n:
                                haravasto.lisaa_piirrettava_ruutu(
                                    str(n), x * 40, y * 40)
            x = x + 1
        y = y + 1

    haravasto.piirra_ruudut()