Exemple #1
0
    def __init__(self, templo=None):
        """
        Construção do objeto Jogo.

        :param templo: Uma referência para o objeto Templo.
        """
        self.baralho = Baralho()
        self.templo = templo
Exemple #2
0
 def testa_recebe(self):
     baralho = Baralho()
     baralho2 = baralho
     artefato = MagicMock()
     baralho.recebe(artefato)
     # testar se o baralho contêm o artefato recebido
     assert baralho == baralho2, (baralho, baralho2)
     assert artefato in baralho.deque_de_cartas
Exemple #3
0
class Jogo:
    """
    O módulo principal do jogo do tesouro Inca.
    """
    def __init__(self, templo=None):
        """
        Construção do objeto Jogo.

        :param templo: Uma referência para o objeto Templo.
        """
        self.baralho = Baralho()
        self.templo = templo

    def inicia(self):
        """
        O jogo do Tesouro Inca começa chamando este método

        Ao iniciar o jogo o Templo deve ser montado
        :return:
        """
        #self.templo.montar()
        self.baralho.embaralha()
        print(self.baralho.deque_de_cartas)
Exemple #4
0
 def setUp(self):
     self.baralho = Baralho()
Exemple #5
0
from regras import Regras
from pokereval.card import Card
from pokereval.hand_evaluator import HandEvaluator

bars = [Card(2,"s"),Card(3,"s"),Card(4,"s"),Card(5,"s"),Card(6,"s"),Card(7,"s"),Card(8,"s"),Card(9,"s"),Card(10,"s"),Card("J","s"),Card("Q","s"),Card("K","s"),Card("A","s")]
barh = [Card(2,"h"),Card(3,"h"),Card(4,"h"),Card(5,"h"),Card(6,"h"),Card(7,"h"),Card(8,"h"),Card(9,"h"),Card(10,"h"),Card("J","h"),Card("Q","h"),Card("K","h"),Card("A","h")]
barc = [Card(2,"c"),Card(3,"c"),Card(4,"c"),Card(5,"c"),Card(6,"c"),Card(7,"c"),Card(8,"c"),Card(9,"c"),Card(10,"c"),Card("J","c"),Card("Q","c"),Card("K","c"),Card("A","c")]
bard = [Card(2,"d"),Card(3,"d"),Card(4,"d"),Card(5,"d"),Card(6,"d"),Card(7,"d"),Card(8,"d"),Card(9,"d"),Card(10,"d"),Card("J","d"),Card("Q","d"),Card("K","d"),Card("A","d")]

bar = bars + barh + barc + bard

j = []
for k in range(1,9):
    player = Jogador(k)
    j.append(player)
baralho = Baralho(bar)
baralho2 = Baralho(bar)
mesa = Mesa()
regras = Regras()

while True:
    for i in range(0,8):
        j[i].reset()
    print("Digite o numero de jogadores entre 8 a 2 ou '0' para sair: ", end='')
    nj = int(input())
    if nj == 0:
        break
    elif nj == 1:
        print("Nao eh possivel jogar poker com 1 jogador, tente pelo menos 2")
    elif nj >= 9:
        print("Maximo de 8 jogadores por mesa")
Exemple #6
0
    print(cartasJogador)

    maquina = Trata(cartasMaquina)
    jogador = Trata(cartasJogador)

    valorMaquina = placarMaquina(maquina)
    valorJogador = placarJogador(jogador)
    lbMaquina['text'] = maquina[0]
    lbJogador['text'] = valorJogador


'''codigo principal'''

janela = Tk()
janela.title("G'nus Cassinos")
bara = Baralho()
cartasMaquina = []
cartasJogador = []
valorJogador = 0
valorMaquina = 0
qtdCartasJogador = 2
qtdCartasMaquina = 2
urlDesvira = ''
'''fim codigo principal aplicacao'''

#botao comecar partida!
inicio = Button(janela)
imgInicio = PhotoImage(file=r"image\play2.png")
inicio['image'] = imgInicio
inicio['relief'] = FLAT
inicio['command'] = play
def baralho():
    return Baralho()
Exemple #8
0
 def testa_embaralha(self):
     baralho = Baralho()
     lista = baralho.deque_de_cartas[:]
     baralho.embaralha()
     lista1 = baralho.deque_de_cartas
     assert lista1 != lista, (lista1, lista)
Exemple #9
0
    baralho.definirVira(baralho)
    manilha = baralho.definirManilha()
    baralho.definirManilhas(manilha)
    jogador1.criarMao(baralho)
    jogador2.criarMao(baralho)
    jogador3.criarMao(baralho)
    jogador4.criarMao(baralho)


def limpar():
    os.system("cls")


if __name__ == '__main__':
    jogo = Jogo()
    baralho = Baralho()
    baralho.embaralhar()
    baralho.definirVira(baralho)
    manilha = baralho.definirManilha()
    baralho.definirManilhas(manilha)

    carta1 = 0
    carta2 = 0
    carta3 = 0
    carta4 = 0
    ganhador = 0

    print("\nTime 1")
    nome = str(input("Nome Jogador 1: "))
    jogador1 = jogo.criarJogador(nome, baralho)
    def __init__(self, user, janela):
        self.__user = user
        pygame.init()
        #criando frame desta janela e posicionando.
        self.janela = Frame(janela)
        self.janela['width'] = 910
        self.janela['height'] = 600
        self.janela['bg'] = "#006400"
        self.janela.place(x=0, y=0)
        #fim do frame tela principal do jogo.
        mixer.init()
        self.bara = Baralho()
        self.r = Ranking("blackjack")
        self.cartasMaquina = []
        self.cartasJogador = []
        self.valorJogador = 0
        self.valorMaquina = 0
        self.qtdCartasJogador = 2
        self.qtdCartasMaquina = 2
        self.urlDesvira = ''
        self.saldo_carteira = 250
        self.valor_aposta = 00

        # inicio botao reinicio
        self.reinicio = Button(self.janela)
        self.reinicioimg = PhotoImage(file="imagem/restart2.png")
        self.reinicio['image'] = self.reinicioimg
        self.reinicio['relief'] = FLAT
        self.reinicio['command'] = self.novaPartida
        self.reinicio['bg'] = '#006400'
        # fim reinicio

        # LOGOgnus
        self.logo = Label(self.janela)
        self.imglogo = PhotoImage(file="imagem/meio2.png")
        self.logo['image'] = self.imglogo
        self.logo['bg'] = '#006400'
        self.logo.place(x=340, y=240)

        # botao comecar partida!
        self.inicio = Button(self.janela)
        self.imgInicio = PhotoImage(file=r"imagem/play2.png")
        self.inicio['image'] = self.imgInicio
        self.inicio['relief'] = FLAT
        self.inicio['command'] = self.novaPartida
        self.inicio['bg'] = '#006400'
        self.inicio.place(x=400, y=165)

        # MAQUINA SLOT CARTAS
        # perfil label img MAQUINA gnu
        self.mperfil = Label(self.janela)
        self.imgperfil = PhotoImage(file=r"imagem/mrgnu2.png")
        self.mperfil['image'] = self.imgperfil
        self.mperfil['bg'] = '#006400'
        self.mperfil.place(x=160, y=10)

        # soma, placar da maquina gnu
        self.msomam = Label(self.janela)
        self.imgsomam = PhotoImage(file=r"imagem/SOMA.png")
        self.msomam['image'] = self.imgsomam
        self.msomam['bg'] = '#006400'
        self.msomam.place(x=160, y=130)

        # slot 1 para cartas
        self.m = Label(self.janela)
        self.img1 = PhotoImage(file="imagem/cartasSlot.png")
        self.m['image'] = self.img1
        self.m['bg'] = '#006400'
        self.m.place(x=350, y=30)

        # slot 2 para cartas
        self.m2 = Label(self.janela)
        self.img2 = PhotoImage(file=r"imagem/cartasSlot.png")
        self.m2['image'] = self.img2
        self.m2['bg'] = '#006400'
        self.m2.place(x=443, y=30)

        # JOGADOR SLOT CARTAS
        # img personagem jogador perfil
        self.mPer = Label(self.janela)
        self.imgPer = PhotoImage(file=r"imagem/user2.png")
        self.mPer['image'] = self.imgPer
        self.mPer['bg'] = '#006400'
        self.mPer.place(x=160, y=430)

        # m_principal de olho virado para mover olho do personagem.
        self.img_olho_virado = PhotoImage(file=r"imagem/user2vira.png")
        self.img_olho_cima_ganhou = PhotoImage(
            file=r"imagem/user2cimaganhou.png")
        self.img_olho_cima_perdeu = PhotoImage(
            file=r"imagem/user2cimaperdeu.png")
        self.img_olho_cima_empatou = PhotoImage(
            file=r"imagem/user2cimaempatou.png")
        #img da maquina
        self.img_olho_ganhou = PhotoImage(file=r"imagem/mrgnu2ganhou.png")
        self.img_olho_perdeu = PhotoImage(file=r"imagem/mrgnu2perdeu.png")

        # soma label img placar jogador
        self.msoma = Label(self.janela)
        self.imgsoma = PhotoImage(file=r"imagem/SOMA.png")
        self.msoma['image'] = self.imgsoma
        self.msoma['bg'] = '#006400'
        self.msoma.place(x=160, y=550)

        # slot3, jogador
        self.m3 = Label(self.janela)
        self.img3 = PhotoImage(file=r"imagem/cartasSlot.png")
        self.m3['image'] = self.img3
        self.m3['bg'] = '#006400'
        self.m3.place(x=350, y=460)

        # slot4 jogador
        self.m4 = Label(self.janela)
        self.img4 = PhotoImage(file=r"imagem/cartasSlot.png")
        self.m4['image'] = self.img4
        self.m4['bg'] = '#006400'
        self.m4.place(x=443, y=460)

        # inicio quadro ranking
        self.rank = Label(self.janela)
        self.imgrank = PhotoImage(file=r"imagem/quadroRanking.png")
        self.rank['bg'] = "#006400"
        self.rank.place(x=9, y=10)

        # label ranking
        self.ranking = Label(self.janela)
        self.ranking['bg'] = '#C8AB37'
        self.ranking['font'] = 'Arial', 12, "bold"
        self.ranking.place(x=1000, y=38)
        self.ranking['text'] = " "

        #algumas ns_slotmachine reservas em slots invisiveis que ficarão do lado direito do user..

        self.imag1 = Label(self.janela)
        self.imag1Carta = PhotoImage(file=r"imagem/Baralho\Ao.png")
        self.imag1['image'] = self.imag1Carta
        self.imag1['bg'] = '#006400'

        self.imag2 = Label(self.janela)
        self.imag2Carta = PhotoImage(file=r"imagem/Baralho\Ao.png")
        self.imag2['image'] = self.imag2Carta
        self.imag2['bg'] = '#006400'

        self.imag3 = Label(self.janela)
        self.imag3Carta = PhotoImage(file=r"imagem/Baralho\Ao.png")
        self.imag3['image'] = self.imag3Carta
        self.imag3['bg'] = '#006400'

        self.imag4 = Label(self.janela)
        self.imag4Carta = PhotoImage(file=r"imagem/Baralho\Ao.png")
        self.imag4['image'] = self.imag4Carta
        self.imag4['bg'] = '#006400'

        self.imag5 = Label(self.janela)
        self.imag5Carta = PhotoImage(file=r"imagem/Baralho\Ao.png")
        self.imag5['image'] = self.imag5Carta
        self.imag5['bg'] = '#006400'

        # daqui pra baixo fica slots para mais cartas da maquina!!@

        self.imag6 = Label(self.janela)
        self.imag6Carta = PhotoImage(file=r"imagem/Baralho\Ap.png")
        self.imag6['image'] = self.imag6Carta
        self.imag6['bg'] = '#006400'

        self.imag7 = Label(self.janela)
        self.imag7Carta = PhotoImage(file=r"imagem/Baralho\Ap.png")
        self.imag7['image'] = self.imag7Carta
        self.imag7['bg'] = '#006400'

        self.imag8 = Label(self.janela)
        self.imag8Carta = PhotoImage(file=r"imagem/Baralho\Ap.png")
        self.imag8['image'] = self.imag8Carta
        self.imag8['bg'] = '#006400'

        self.imag9 = Label(self.janela)
        self.imag9Carta = PhotoImage(file=r"imagem/Baralho\Ap.png")
        self.imag9['image'] = self.imag9Carta
        self.imag9['bg'] = '#006400'

        self.imag10 = Label(self.janela)
        self.imag10Carta = PhotoImage(file=r"imagem/Baralho\Ap.png")
        self.imag10['image'] = self.imag10Carta
        self.imag10['bg'] = '#006400'

        # botao de parar
        self.btnParar = Button(self.janela)
        self.btnParar['bg'] = '#006400'
        self.btnParar['relief'] = FLAT
        self.btnParar['command'] = self.pararcarta
        self.imgbtnP = PhotoImage(file=r"imagem/btnP2.png")
        self.btnParar['image'] = self.imgbtnP

        # botao descer mais carta
        self.btnDescer = Button(self.janela)
        self.btnDescer['bg'] = '#006400'
        self.btnDescer['command'] = self.puxarcarta
        self.btnDescer['relief'] = FLAT
        self.imgbtnD = PhotoImage(file=r"imagem/btnD2.png")
        self.btnDescer['image'] = self.imgbtnD

        # inicio  botao voltar para tela principal
        self.btnVoltar = Button(self.janela)
        self.btnVoltar['bg'] = '#006400'
        self.btnVoltar['command'] = self.voltar
        self.btnVoltar['relief'] = FLAT
        self.imgbtnVoltar = PhotoImage(file=r"imagem/voltar2.png")
        self.btnVoltar['image'] = self.imgbtnVoltar
        self.btnVoltar.place(x=2, y=530)

        # monte label img, m_principal do monte de cartas no lado direito>>>
        self.m5 = Label(self.janela)
        self.img5 = PhotoImage(file=r"imagem/monteC3.png")
        self.m5['image'] = self.img5
        self.m5['bg'] = '#006400'
        self.m5['height'] = 300
        self.m5['width'] = 300
        self.m5.place(x=670, y=60)

        # carteira
        self.carteira = Label(self.janela)
        self.cimg = PhotoImage(file=r"imagem/carteira2.png")
        self.carteira['image'] = self.cimg
        self.carteira['bg'] = "#006400"
        self.carteira.place(x=790, y=20)

        self.qtdcarteira = Label(self.janela)
        self.qtdcartimg = PhotoImage(file=r"imagem/qtdcarteira.png")
        self.qtdcarteira['image'] = self.qtdcartimg
        self.qtdcarteira['bg'] = "#006400"
        self.qtdcarteira.place(x=702, y=47)

        self.saldo_carteira_lb = Label(self.janela)
        self.saldo_carteira_lb['text'] = self.saldo_carteira
        self.saldo_carteira_lb['bg'] = "#C8AB37"
        self.saldo_carteira_lb['font'] = "Arial", 12, "bold"
        self.saldo_carteira_lb.place(x=710, y=54)
        # fim carteira

        # label mostrador da maquina
        self.lbMaquina = Label(self.janela, text='00')
        self.lbMaquina['font'] = 'Arial', 12, "bold"
        self.lbMaquina['bg'] = "#C8AB37"
        self.lbMaquina.place(x=254, y=138)

        # label mostrador jogador
        self.lbJogador = Label(self.janela, text='00')
        self.lbJogador['font'] = 'Arial', 12, "bold"
        self.lbJogador['bg'] = "#C8AB37"
        self.lbJogador.place(x=254, y=557)

        # medalha ganhou partida
        self.medalha = Label(self.janela)
        self.imgMedalha = PhotoImage(file=r"imagem/ganhou2.png")
        self.medalha['image'] = self.imgMedalha
        self.medalha['bg'] = '#006400'

        # perdeu  partida
        self.perdeuimg = Label(self.janela)
        self.imgPerdeu = PhotoImage(file=r"imagem/perdeu1.png")
        self.perdeuimg['image'] = self.imgPerdeu
        self.perdeuimg['bg'] = '#006400'

        # EMPATOU partida
        self.empateimg = Label(self.janela)
        self.imgEmpate = PhotoImage(file=r"imagem/empate.png")
        self.empateimg['image'] = self.imgEmpate
        self.empateimg['bg'] = '#006400'

        # lbResultadoMaquina
        self.lbResultadoMaquina = Label(self.janela)
        self.lbResultadoMaquina['font'] = 'Arial', 12, "bold"
        self.pontoMaquina = PhotoImage(file=r"imagem/pontoM.png")
        self.lbResultadoMaquina['bg'] = '#006400'
        self.lbResultadoMaquina['image'] = self.pontoMaquina

        # lbResultadoJogador
        self.lbResultadoJogador = Label(self.janela)
        self.lbResultadoJogador['font'] = 'Arial', 12, "bold"
        self.pontoJogador = PhotoImage(file=r"imagem/pontoM.png")
        self.lbResultadoJogador['bg'] = '#006400'
        self.lbResultadoJogador['image'] = self.pontoJogador

        # lbPontuacao maquina inicio
        self.lbPontuacaoMaquina = Label(self.janela)
        self.lbPontuacaoMaquina['font'] = 'Arial', 12, "bold"
        self.lbPontuacaoMaquina['bg'] = '#C8AB37'
        self.lbPontuacaoMaquina.place(x=1000, y=165)

        # lbPontuacao Jogador inicio
        self.lbPontuacaoJogador = Label(self.janela)
        self.lbPontuacaoJogador['font'] = 'Arial', 12, "bold"
        self.lbPontuacaoJogador['bg'] = "#C8AB37"
        self.lbPontuacaoJogador.place(x=1000, y=415)

        # btnapagarvaloraposta - este botão cancela o que foi apostado.
        self.btn_apagar_aposta = Button(self.janela)
        self.imgbtn_apagar_aposta = PhotoImage(file="imagem/btnApagar.png")
        self.btn_apagar_aposta['image'] = self.imgbtn_apagar_aposta
        self.btn_apagar_aposta['relief'] = FLAT
        self.btn_apagar_aposta['command'] = self.cancelar_aposta
        self.btn_apagar_aposta['bg'] = "#006400"
        self.btn_apagar_aposta.place(x=1000, y=450)

        # fichas na tela 5,10,25,50,100
        self.ficha5 = Button(self.janela)
        self.fimg5 = PhotoImage(file=r"imagem/ficha/cinco.png")
        self.ficha5['bg'] = "#006400"
        self.ficha5['image'] = self.fimg5
        self.ficha5['command'] = partial(self.aposta_ficha, 5)
        self.ficha5['relief'] = FLAT

        self.ficha10 = Button(self.janela)
        self.fimg10 = PhotoImage(file=r"imagem/ficha/dez.png")
        self.ficha10['bg'] = "#006400"
        self.ficha10['image'] = self.fimg10
        self.ficha10['relief'] = FLAT
        self.ficha10['command'] = partial(self.aposta_ficha, 10)

        self.ficha25 = Button(self.janela)
        self.fimg25 = PhotoImage(file=r"imagem/ficha/vintecinco.png")
        self.ficha25['bg'] = "#006400"
        self.ficha25['image'] = self.fimg25
        self.ficha25['relief'] = FLAT
        self.ficha25['command'] = partial(self.aposta_ficha, 25)

        self.ficha50 = Button(self.janela)
        self.fimg50 = PhotoImage(file=r"imagem/ficha/cinquenta.png")
        self.ficha50['bg'] = "#006400"
        self.ficha50['image'] = self.fimg50
        self.ficha50['relief'] = FLAT
        self.ficha50['command'] = partial(self.aposta_ficha, 50)

        self.ficha100 = Button(self.janela)
        self.fimg100 = PhotoImage(file=r"imagem/ficha/cem.png")
        self.ficha100['bg'] = "#006400"
        self.ficha100['relief'] = FLAT
        self.ficha100['image'] = self.fimg100
        self.ficha100['command'] = partial(self.aposta_ficha, 100)
        # fim de fichas

        # quadro de apostas
        self.aposta = Label(self.janela)
        self.imgAposta = PhotoImage(file=r"imagem/aposta3.png")
        self.aposta['image'] = self.imgAposta
        self.aposta['bg'] = "#006400"

        self.valor_aposta_lb = Label(self.janela)
        self.valor_aposta_lb['text'] = self.valor_aposta
        self.valor_aposta_lb['bg'] = "#C8AB37"
        self.valor_aposta_lb['font'] = "Arial", 12, "bold"

        # btn Ok
        self.btnOk = Button(self.janela)
        self.btnOk['bg'] = '#006400'
        self.btnOk['command'] = self.Ok
        self.btnOk['relief'] = FLAT
        self.imgbtnOk = PhotoImage(file=r"imagem/btnOk.png")
        self.btnOk['image'] = self.imgbtnOk
        self.btnOk.place(x=1000, y=350)

        self.aposta_status(
            "fechado"
        )  # esta linha é super importante para fazer com que as fichas não entrem ao iniciar o sistema.
        self.texto_ranking = self.imprimir_ranking()

        self.ranking['text'] = self.texto_ranking
        self.rank['image'] = self.imgrank
        self.ranking.place(x=25, y=43)

        # lbAlerta(movimento invalido) inicio
        self.lbAlerta_aposta = Label(self.janela, text="Efetue uma aposta!")
        self.lbAlerta_aposta['font'] = 'Arial', 12, "bold"
        self.lbAlerta_aposta['bg'] = "#ff0000"
        self.lbAlerta_aposta['fg'] = "#fff"
        self.lbAlerta_aposta.place(x=1000, y=450)

        #lbAlerta Quantia aposta invalida
        self.lbAlerta_quantia = Label(self.janela, text="Saldo insuficiente!")
        self.lbAlerta_quantia['font'] = 'Arial', 12, "bold"
        self.lbAlerta_quantia[
            'bg'] = "#ff0000"  #COR Do BG da mensagem ANTIGA:C8AB37
        self.lbAlerta_quantia['fg'] = "#fff"
        self.lbAlerta_quantia.place(x=1000, y=450)

        self.btn_how_to_play = Button(self.janela)
        self.imgbtn_how_to_play = PhotoImage(file="imagem/howtoplaybutton.png")
        self.btn_how_to_play['image'] = self.imgbtn_how_to_play
        self.btn_how_to_play['relief'] = FLAT
        self.btn_how_to_play['command'] = self.abre_how_to_play
        self.btn_how_to_play['bg'] = "#006400"
        self.btn_how_to_play.place(x=2, y=465)
class Telablackjack:
    """Esta é a classe TelablackJack que serve que é usada para criar a tela do jogo blackjack e todas as funcionalidades da mesma."""
    def __init__(self, user, janela):
        self.__user = user
        pygame.init()
        #criando frame desta janela e posicionando.
        self.janela = Frame(janela)
        self.janela['width'] = 910
        self.janela['height'] = 600
        self.janela['bg'] = "#006400"
        self.janela.place(x=0, y=0)
        #fim do frame tela principal do jogo.
        mixer.init()
        self.bara = Baralho()
        self.r = Ranking("blackjack")
        self.cartasMaquina = []
        self.cartasJogador = []
        self.valorJogador = 0
        self.valorMaquina = 0
        self.qtdCartasJogador = 2
        self.qtdCartasMaquina = 2
        self.urlDesvira = ''
        self.saldo_carteira = 250
        self.valor_aposta = 00

        # inicio botao reinicio
        self.reinicio = Button(self.janela)
        self.reinicioimg = PhotoImage(file="imagem/restart2.png")
        self.reinicio['image'] = self.reinicioimg
        self.reinicio['relief'] = FLAT
        self.reinicio['command'] = self.novaPartida
        self.reinicio['bg'] = '#006400'
        # fim reinicio

        # LOGOgnus
        self.logo = Label(self.janela)
        self.imglogo = PhotoImage(file="imagem/meio2.png")
        self.logo['image'] = self.imglogo
        self.logo['bg'] = '#006400'
        self.logo.place(x=340, y=240)

        # botao comecar partida!
        self.inicio = Button(self.janela)
        self.imgInicio = PhotoImage(file=r"imagem/play2.png")
        self.inicio['image'] = self.imgInicio
        self.inicio['relief'] = FLAT
        self.inicio['command'] = self.novaPartida
        self.inicio['bg'] = '#006400'
        self.inicio.place(x=400, y=165)

        # MAQUINA SLOT CARTAS
        # perfil label img MAQUINA gnu
        self.mperfil = Label(self.janela)
        self.imgperfil = PhotoImage(file=r"imagem/mrgnu2.png")
        self.mperfil['image'] = self.imgperfil
        self.mperfil['bg'] = '#006400'
        self.mperfil.place(x=160, y=10)

        # soma, placar da maquina gnu
        self.msomam = Label(self.janela)
        self.imgsomam = PhotoImage(file=r"imagem/SOMA.png")
        self.msomam['image'] = self.imgsomam
        self.msomam['bg'] = '#006400'
        self.msomam.place(x=160, y=130)

        # slot 1 para cartas
        self.m = Label(self.janela)
        self.img1 = PhotoImage(file="imagem/cartasSlot.png")
        self.m['image'] = self.img1
        self.m['bg'] = '#006400'
        self.m.place(x=350, y=30)

        # slot 2 para cartas
        self.m2 = Label(self.janela)
        self.img2 = PhotoImage(file=r"imagem/cartasSlot.png")
        self.m2['image'] = self.img2
        self.m2['bg'] = '#006400'
        self.m2.place(x=443, y=30)

        # JOGADOR SLOT CARTAS
        # img personagem jogador perfil
        self.mPer = Label(self.janela)
        self.imgPer = PhotoImage(file=r"imagem/user2.png")
        self.mPer['image'] = self.imgPer
        self.mPer['bg'] = '#006400'
        self.mPer.place(x=160, y=430)

        # m_principal de olho virado para mover olho do personagem.
        self.img_olho_virado = PhotoImage(file=r"imagem/user2vira.png")
        self.img_olho_cima_ganhou = PhotoImage(
            file=r"imagem/user2cimaganhou.png")
        self.img_olho_cima_perdeu = PhotoImage(
            file=r"imagem/user2cimaperdeu.png")
        self.img_olho_cima_empatou = PhotoImage(
            file=r"imagem/user2cimaempatou.png")
        #img da maquina
        self.img_olho_ganhou = PhotoImage(file=r"imagem/mrgnu2ganhou.png")
        self.img_olho_perdeu = PhotoImage(file=r"imagem/mrgnu2perdeu.png")

        # soma label img placar jogador
        self.msoma = Label(self.janela)
        self.imgsoma = PhotoImage(file=r"imagem/SOMA.png")
        self.msoma['image'] = self.imgsoma
        self.msoma['bg'] = '#006400'
        self.msoma.place(x=160, y=550)

        # slot3, jogador
        self.m3 = Label(self.janela)
        self.img3 = PhotoImage(file=r"imagem/cartasSlot.png")
        self.m3['image'] = self.img3
        self.m3['bg'] = '#006400'
        self.m3.place(x=350, y=460)

        # slot4 jogador
        self.m4 = Label(self.janela)
        self.img4 = PhotoImage(file=r"imagem/cartasSlot.png")
        self.m4['image'] = self.img4
        self.m4['bg'] = '#006400'
        self.m4.place(x=443, y=460)

        # inicio quadro ranking
        self.rank = Label(self.janela)
        self.imgrank = PhotoImage(file=r"imagem/quadroRanking.png")
        self.rank['bg'] = "#006400"
        self.rank.place(x=9, y=10)

        # label ranking
        self.ranking = Label(self.janela)
        self.ranking['bg'] = '#C8AB37'
        self.ranking['font'] = 'Arial', 12, "bold"
        self.ranking.place(x=1000, y=38)
        self.ranking['text'] = " "

        #algumas ns_slotmachine reservas em slots invisiveis que ficarão do lado direito do user..

        self.imag1 = Label(self.janela)
        self.imag1Carta = PhotoImage(file=r"imagem/Baralho\Ao.png")
        self.imag1['image'] = self.imag1Carta
        self.imag1['bg'] = '#006400'

        self.imag2 = Label(self.janela)
        self.imag2Carta = PhotoImage(file=r"imagem/Baralho\Ao.png")
        self.imag2['image'] = self.imag2Carta
        self.imag2['bg'] = '#006400'

        self.imag3 = Label(self.janela)
        self.imag3Carta = PhotoImage(file=r"imagem/Baralho\Ao.png")
        self.imag3['image'] = self.imag3Carta
        self.imag3['bg'] = '#006400'

        self.imag4 = Label(self.janela)
        self.imag4Carta = PhotoImage(file=r"imagem/Baralho\Ao.png")
        self.imag4['image'] = self.imag4Carta
        self.imag4['bg'] = '#006400'

        self.imag5 = Label(self.janela)
        self.imag5Carta = PhotoImage(file=r"imagem/Baralho\Ao.png")
        self.imag5['image'] = self.imag5Carta
        self.imag5['bg'] = '#006400'

        # daqui pra baixo fica slots para mais cartas da maquina!!@

        self.imag6 = Label(self.janela)
        self.imag6Carta = PhotoImage(file=r"imagem/Baralho\Ap.png")
        self.imag6['image'] = self.imag6Carta
        self.imag6['bg'] = '#006400'

        self.imag7 = Label(self.janela)
        self.imag7Carta = PhotoImage(file=r"imagem/Baralho\Ap.png")
        self.imag7['image'] = self.imag7Carta
        self.imag7['bg'] = '#006400'

        self.imag8 = Label(self.janela)
        self.imag8Carta = PhotoImage(file=r"imagem/Baralho\Ap.png")
        self.imag8['image'] = self.imag8Carta
        self.imag8['bg'] = '#006400'

        self.imag9 = Label(self.janela)
        self.imag9Carta = PhotoImage(file=r"imagem/Baralho\Ap.png")
        self.imag9['image'] = self.imag9Carta
        self.imag9['bg'] = '#006400'

        self.imag10 = Label(self.janela)
        self.imag10Carta = PhotoImage(file=r"imagem/Baralho\Ap.png")
        self.imag10['image'] = self.imag10Carta
        self.imag10['bg'] = '#006400'

        # botao de parar
        self.btnParar = Button(self.janela)
        self.btnParar['bg'] = '#006400'
        self.btnParar['relief'] = FLAT
        self.btnParar['command'] = self.pararcarta
        self.imgbtnP = PhotoImage(file=r"imagem/btnP2.png")
        self.btnParar['image'] = self.imgbtnP

        # botao descer mais carta
        self.btnDescer = Button(self.janela)
        self.btnDescer['bg'] = '#006400'
        self.btnDescer['command'] = self.puxarcarta
        self.btnDescer['relief'] = FLAT
        self.imgbtnD = PhotoImage(file=r"imagem/btnD2.png")
        self.btnDescer['image'] = self.imgbtnD

        # inicio  botao voltar para tela principal
        self.btnVoltar = Button(self.janela)
        self.btnVoltar['bg'] = '#006400'
        self.btnVoltar['command'] = self.voltar
        self.btnVoltar['relief'] = FLAT
        self.imgbtnVoltar = PhotoImage(file=r"imagem/voltar2.png")
        self.btnVoltar['image'] = self.imgbtnVoltar
        self.btnVoltar.place(x=2, y=530)

        # monte label img, m_principal do monte de cartas no lado direito>>>
        self.m5 = Label(self.janela)
        self.img5 = PhotoImage(file=r"imagem/monteC3.png")
        self.m5['image'] = self.img5
        self.m5['bg'] = '#006400'
        self.m5['height'] = 300
        self.m5['width'] = 300
        self.m5.place(x=670, y=60)

        # carteira
        self.carteira = Label(self.janela)
        self.cimg = PhotoImage(file=r"imagem/carteira2.png")
        self.carteira['image'] = self.cimg
        self.carteira['bg'] = "#006400"
        self.carteira.place(x=790, y=20)

        self.qtdcarteira = Label(self.janela)
        self.qtdcartimg = PhotoImage(file=r"imagem/qtdcarteira.png")
        self.qtdcarteira['image'] = self.qtdcartimg
        self.qtdcarteira['bg'] = "#006400"
        self.qtdcarteira.place(x=702, y=47)

        self.saldo_carteira_lb = Label(self.janela)
        self.saldo_carteira_lb['text'] = self.saldo_carteira
        self.saldo_carteira_lb['bg'] = "#C8AB37"
        self.saldo_carteira_lb['font'] = "Arial", 12, "bold"
        self.saldo_carteira_lb.place(x=710, y=54)
        # fim carteira

        # label mostrador da maquina
        self.lbMaquina = Label(self.janela, text='00')
        self.lbMaquina['font'] = 'Arial', 12, "bold"
        self.lbMaquina['bg'] = "#C8AB37"
        self.lbMaquina.place(x=254, y=138)

        # label mostrador jogador
        self.lbJogador = Label(self.janela, text='00')
        self.lbJogador['font'] = 'Arial', 12, "bold"
        self.lbJogador['bg'] = "#C8AB37"
        self.lbJogador.place(x=254, y=557)

        # medalha ganhou partida
        self.medalha = Label(self.janela)
        self.imgMedalha = PhotoImage(file=r"imagem/ganhou2.png")
        self.medalha['image'] = self.imgMedalha
        self.medalha['bg'] = '#006400'

        # perdeu  partida
        self.perdeuimg = Label(self.janela)
        self.imgPerdeu = PhotoImage(file=r"imagem/perdeu1.png")
        self.perdeuimg['image'] = self.imgPerdeu
        self.perdeuimg['bg'] = '#006400'

        # EMPATOU partida
        self.empateimg = Label(self.janela)
        self.imgEmpate = PhotoImage(file=r"imagem/empate.png")
        self.empateimg['image'] = self.imgEmpate
        self.empateimg['bg'] = '#006400'

        # lbResultadoMaquina
        self.lbResultadoMaquina = Label(self.janela)
        self.lbResultadoMaquina['font'] = 'Arial', 12, "bold"
        self.pontoMaquina = PhotoImage(file=r"imagem/pontoM.png")
        self.lbResultadoMaquina['bg'] = '#006400'
        self.lbResultadoMaquina['image'] = self.pontoMaquina

        # lbResultadoJogador
        self.lbResultadoJogador = Label(self.janela)
        self.lbResultadoJogador['font'] = 'Arial', 12, "bold"
        self.pontoJogador = PhotoImage(file=r"imagem/pontoM.png")
        self.lbResultadoJogador['bg'] = '#006400'
        self.lbResultadoJogador['image'] = self.pontoJogador

        # lbPontuacao maquina inicio
        self.lbPontuacaoMaquina = Label(self.janela)
        self.lbPontuacaoMaquina['font'] = 'Arial', 12, "bold"
        self.lbPontuacaoMaquina['bg'] = '#C8AB37'
        self.lbPontuacaoMaquina.place(x=1000, y=165)

        # lbPontuacao Jogador inicio
        self.lbPontuacaoJogador = Label(self.janela)
        self.lbPontuacaoJogador['font'] = 'Arial', 12, "bold"
        self.lbPontuacaoJogador['bg'] = "#C8AB37"
        self.lbPontuacaoJogador.place(x=1000, y=415)

        # btnapagarvaloraposta - este botão cancela o que foi apostado.
        self.btn_apagar_aposta = Button(self.janela)
        self.imgbtn_apagar_aposta = PhotoImage(file="imagem/btnApagar.png")
        self.btn_apagar_aposta['image'] = self.imgbtn_apagar_aposta
        self.btn_apagar_aposta['relief'] = FLAT
        self.btn_apagar_aposta['command'] = self.cancelar_aposta
        self.btn_apagar_aposta['bg'] = "#006400"
        self.btn_apagar_aposta.place(x=1000, y=450)

        # fichas na tela 5,10,25,50,100
        self.ficha5 = Button(self.janela)
        self.fimg5 = PhotoImage(file=r"imagem/ficha/cinco.png")
        self.ficha5['bg'] = "#006400"
        self.ficha5['image'] = self.fimg5
        self.ficha5['command'] = partial(self.aposta_ficha, 5)
        self.ficha5['relief'] = FLAT

        self.ficha10 = Button(self.janela)
        self.fimg10 = PhotoImage(file=r"imagem/ficha/dez.png")
        self.ficha10['bg'] = "#006400"
        self.ficha10['image'] = self.fimg10
        self.ficha10['relief'] = FLAT
        self.ficha10['command'] = partial(self.aposta_ficha, 10)

        self.ficha25 = Button(self.janela)
        self.fimg25 = PhotoImage(file=r"imagem/ficha/vintecinco.png")
        self.ficha25['bg'] = "#006400"
        self.ficha25['image'] = self.fimg25
        self.ficha25['relief'] = FLAT
        self.ficha25['command'] = partial(self.aposta_ficha, 25)

        self.ficha50 = Button(self.janela)
        self.fimg50 = PhotoImage(file=r"imagem/ficha/cinquenta.png")
        self.ficha50['bg'] = "#006400"
        self.ficha50['image'] = self.fimg50
        self.ficha50['relief'] = FLAT
        self.ficha50['command'] = partial(self.aposta_ficha, 50)

        self.ficha100 = Button(self.janela)
        self.fimg100 = PhotoImage(file=r"imagem/ficha/cem.png")
        self.ficha100['bg'] = "#006400"
        self.ficha100['relief'] = FLAT
        self.ficha100['image'] = self.fimg100
        self.ficha100['command'] = partial(self.aposta_ficha, 100)
        # fim de fichas

        # quadro de apostas
        self.aposta = Label(self.janela)
        self.imgAposta = PhotoImage(file=r"imagem/aposta3.png")
        self.aposta['image'] = self.imgAposta
        self.aposta['bg'] = "#006400"

        self.valor_aposta_lb = Label(self.janela)
        self.valor_aposta_lb['text'] = self.valor_aposta
        self.valor_aposta_lb['bg'] = "#C8AB37"
        self.valor_aposta_lb['font'] = "Arial", 12, "bold"

        # btn Ok
        self.btnOk = Button(self.janela)
        self.btnOk['bg'] = '#006400'
        self.btnOk['command'] = self.Ok
        self.btnOk['relief'] = FLAT
        self.imgbtnOk = PhotoImage(file=r"imagem/btnOk.png")
        self.btnOk['image'] = self.imgbtnOk
        self.btnOk.place(x=1000, y=350)

        self.aposta_status(
            "fechado"
        )  # esta linha é super importante para fazer com que as fichas não entrem ao iniciar o sistema.
        self.texto_ranking = self.imprimir_ranking()

        self.ranking['text'] = self.texto_ranking
        self.rank['image'] = self.imgrank
        self.ranking.place(x=25, y=43)

        # lbAlerta(movimento invalido) inicio
        self.lbAlerta_aposta = Label(self.janela, text="Efetue uma aposta!")
        self.lbAlerta_aposta['font'] = 'Arial', 12, "bold"
        self.lbAlerta_aposta['bg'] = "#ff0000"
        self.lbAlerta_aposta['fg'] = "#fff"
        self.lbAlerta_aposta.place(x=1000, y=450)

        #lbAlerta Quantia aposta invalida
        self.lbAlerta_quantia = Label(self.janela, text="Saldo insuficiente!")
        self.lbAlerta_quantia['font'] = 'Arial', 12, "bold"
        self.lbAlerta_quantia[
            'bg'] = "#ff0000"  #COR Do BG da mensagem ANTIGA:C8AB37
        self.lbAlerta_quantia['fg'] = "#fff"
        self.lbAlerta_quantia.place(x=1000, y=450)

        self.btn_how_to_play = Button(self.janela)
        self.imgbtn_how_to_play = PhotoImage(file="imagem/howtoplaybutton.png")
        self.btn_how_to_play['image'] = self.imgbtn_how_to_play
        self.btn_how_to_play['relief'] = FLAT
        self.btn_how_to_play['command'] = self.abre_how_to_play
        self.btn_how_to_play['bg'] = "#006400"
        self.btn_how_to_play.place(x=2, y=465)

    def trhead_temporizador(self, tempo, texto, xA, yA, xNovo, yNovo):
        """mostra por um breve tempo na tela"""
        texto.place(x=xNovo, y=yNovo)
        time.sleep(tempo)
        texto.place(x=xA, y=yA)

    def mostra_temporizado(self, tempo, texto, xA, yA, xNovo, yNovo):
        """Este método serve para colocar um componente na tela por um tempo pré-determinado"""
        threading.Timer(
            0.1,
            partial(self.trhead_temporizador, tempo, texto, xA, yA, xNovo,
                    yNovo)).start()

    #get e set do user
    @property
    def user(self):
        return self.__user

    @user.setter
    def user(self, valor):
        self.__user = valor

    def abre_how_to_play(self):
        """este metodo serve para abrir o how to play da tela blackjack"""
        Howtoplay(self.janela, "blackjack")

    def aposta_status(self, stat):
        """Este método serve para esconder as fichas(botões), do jogador no momento em que esses botões não são necessários"""
        if stat == "aberto":
            self.btn_apagar_aposta.place(x=859, y=377)
            self.ficha5.place(x=597, y=520)
            self.ficha10.place(x=657, y=520)
            self.ficha25.place(x=717, y=520)
            self.ficha50.place(x=777, y=520)
            self.ficha100.place(x=837, y=520)
            self.aposta.place(x=657, y=345)
            self.btnOk.place(x=575, y=375)
            self.valor_aposta_lb.place(x=740, y=415)
        else:
            self.btn_apagar_aposta.place(x=1000, y=377)
            self.ficha5.place(x=1000, y=500)
            self.ficha10.place(x=1070, y=500)
            self.ficha25.place(x=1140, y=500)
            self.ficha50.place(x=1130, y=500)
            self.ficha100.place(x=1100, y=500)
            self.btnOk.place(x=1000, y=240)

    def aposta_ficha(self, ficha):
        """Este método serve para configurar apostas feitas pelo jogador, e também mudar o valor da carteira do jogador"""
        if self.saldo_carteira - ficha >= 0:
            self.cliqueMoeda()  # som de clique na ficha.
            if ficha == 5:
                self.valor_aposta = self.valor_aposta + 5
                self.saldo_carteira = self.saldo_carteira - 5
                self.saldo_carteira_lb['text'] = self.saldo_carteira
                self.valor_aposta_lb['text'] = self.valor_aposta
            if ficha == 10:
                self.valor_aposta = self.valor_aposta + 10
                self.saldo_carteira = self.saldo_carteira - 10
                self.saldo_carteira_lb['text'] = self.saldo_carteira
                self.valor_aposta_lb['text'] = self.valor_aposta
            if ficha == 25:
                self.valor_aposta = self.valor_aposta + 25
                self.saldo_carteira = self.saldo_carteira - 25
                self.saldo_carteira_lb['text'] = self.saldo_carteira
                self.valor_aposta_lb['text'] = self.valor_aposta
            if ficha == 50:
                self.valor_aposta = self.valor_aposta + 50
                self.saldo_carteira = self.saldo_carteira - 50
                self.saldo_carteira_lb['text'] = self.saldo_carteira
                self.valor_aposta_lb['text'] = self.valor_aposta
            if ficha == 100:
                self.valor_aposta = self.valor_aposta + 100
                self.saldo_carteira = self.saldo_carteira - 100
                self.saldo_carteira_lb['text'] = self.saldo_carteira
                self.valor_aposta_lb['text'] = self.valor_aposta
        else:
            self.mostra_temporizado(
                0.5, self.lbAlerta_quantia, 1000, 400, 690,
                450)  # alerta não deixa apostar essa quantia

    def reiniciarCarteira(self):
        """Este método serve para resetar o valor da carteira para o valor inicial"""
        self.saldo_carteira = 250
        self.valor_aposta_lb.place(x=1000, y=230)

    def Ok(self):
        """Este metodo serve para chamar esconder as fichas de aposta e iniciar uma partida do game"""
        if self.valor_aposta > 0:
            self.aposta_status("fechado")
            self.play()
        else:
            self.mostra_temporizado(0.5, self.lbAlerta_aposta, 1000, 400, 680,
                                    450)  # alerta valor aposta invalido

    def novaPartida(self):
        """Este metodo serve para Configurar uma nova partida limpando a tela sem alterar o valor da carteira."""
        self.zeraLimpa()
        self.valor_aposta = 00
        self.valor_aposta_lb['text'] = self.valor_aposta
        self.aposta_status("aberto")
        self.reinicio['image'] = ""
        self.inicio['image'] = ""
        self.reinicio.place(x=1000, y=200)
        self.inicio.place(x=1000, y=200)

    def estadoBtn(self, est):
        """Este metodo serve para esconder/mostrar os botoes D(descer carta) e P(parar de comprar) """
        if est == "ativa":
            self.btnDescer['image'] = self.imgbtnD
            self.btnParar['image'] = self.imgbtnP
            self.btnParar.place(x=550, y=510)
            self.btnDescer.place(x=655, y=510)
        else:
            self.btnDescer['image'] = ''
            self.btnParar['image'] = ''
            self.btnParar.place(x=1000, y=200)
            self.btnDescer.place(x=1000, y=200)

    def cancelar_aposta(self):
        """Este método serve para cancelar uma aposta que foi efetuada.Este método devolve o valor da aposta para a carteira."""
        self.saldo_carteira = self.saldo_carteira + self.valor_aposta
        self.saldo_carteira_lb['text'] = self.saldo_carteira
        self.valor_aposta = 00
        self.valor_aposta_lb['text'] = self.valor_aposta

    def tiralogo(self):
        """este metodo retira a logo do centro da tela"""
        self.logo['image'] = ''
        self.logo.place(x=1000, y=200)

    def zeraLimpa(self):
        """Este metodo serve para ser chamado por outros metodos quando precisar zerar uma partida e limpar o centro da tela"""
        self.zerarPartida()
        self.limpaMeio()

    def desvira(self):
        """este metodo serve para desvirar a carta da máquina que inicialmente está virada para baixo"""
        self.img2['file'] = self.urlDesvira
        self.m2.place(x=443, y=30)

    def limpaMeio(self):
        """este metodo reconfigura o centro do jogo limpando tudo que é resultado de uma partida."""
        self.mPer['image'] = self.imgPer
        self.mperfil['image'] = self.imgperfil
        self.medalha['image'] = ''
        self.perdeuimg['image'] = ''
        self.empateimg['image'] = ''
        self.lbMaquina['text'] = ''
        self.lbJogador['text'] = ''
        self.logo['image'] = self.imglogo
        self.logo.place(x=340, y=240)
        self.medalha.place(x=1000, y=200)
        self.perdeuimg.place(x=1000, y=200)
        self.empateimg.place(x=1000, y=200)
        self.m.place(x=350, y=30)
        self.m2.place(x=443, y=30)
        self.m3.place(x=350, y=460)
        self.m4.place(x=443, y=460)
        self.img1['file'] = r"imagem/cartasSlot.png"
        self.img2['file'] = r"imagem/cartasSlot.png"
        self.img3['file'] = r"imagem/cartasSlot.png"
        self.img4['file'] = r"imagem/cartasSlot.png"
        self.imag1.place(x=1000, y=400)
        self.imag2.place(x=1000, y=400)
        self.imag3.place(x=1000, y=400)
        self.imag4.place(x=1000, y=400)
        self.imag5.place(x=1000, y=400)
        self.imag6.place(x=1000, y=450)
        self.imag7.place(x=1000, y=450)
        self.imag8.place(x=1000, y=450)
        self.imag9.place(x=1000, y=450)
        self.imag10.place(x=1000, y=450)
        self.resultadoTela("não")

    def zerarPartida(self):
        """este metodo zera uma partida e serve para ser chamado junto com outros metodos de configuração de tela"""
        self.valorMaquina = 0
        self.valorJogador = 0
        self.bara.baralho = []
        self.bara.pilha.topo = None
        self.cartasJogador = []
        self.cartasMaquina = []
        self.qtdCartasJogador = 2
        self.qtdCartasMaquina = 2

    def resultadoTela(self, s):
        """este metodo serve para mostrar o resultado do maquina/jogador no centro da tela"""
        if s == 'sim':
            self.lbResultadoMaquina.place(x=360, y=160)
            self.lbPontuacaoMaquina.place(x=472, y=168)
            self.lbResultadoJogador.place(x=360, y=410)
            self.lbPontuacaoJogador.place(x=472, y=418)
            self.lbResultadoMaquina['image'] = self.pontoMaquina
            self.lbResultadoJogador['image'] = self.pontoJogador
            self.lbPontuacaoMaquina['text'] = self.valorMaquina
            self.lbPontuacaoJogador['text'] = self.valorJogador
        else:
            self.lbPontuacaoMaquina['text'] = ""
            self.lbPontuacaoJogador['text'] = ""
            self.lbPontuacaoMaquina.place(x=1000, y=650)
            self.lbPontuacaoJogador.place(x=1000, y=650)
            self.lbResultadoJogador['image'] = ''
            self.lbResultadoMaquina['image'] = ''

    def imprimir_ranking(self):
        """este metodo serve para retornar uma string com os nomes e pontuação que aparecerão no ranking"""
        return self.r.retorna_ranking()

    def inserir_no_ranking(self, score):
        """este metodo adiciona o usuario do game ao ranking"""
        self.r.add_record(self.user, int(score))

    def empatou(self):
        """Este metodo serve para mostrar a mensagem de - empate."""
        self.saldo_carteira = self.saldo_carteira + self.valor_aposta
        self.saldo_carteira_lb['text'] = self.saldo_carteira
        self.reinicio['image'] = self.reinicioimg
        self.reinicio.place(x=748, y=500)
        self.mPer['image'] = self.img_olho_cima_empatou
        self.estadoBtn("desativa")
        self.perdeuSom()
        self.tiralogo()
        self.resultadoTela("sim")
        self.lbJogador['text'] = ''
        self.lbMaquina['text'] = ''
        self.logo['image'] = ''
        self.empateimg['image'] = self.imgEmpate
        self.empateimg.place(x=330, y=220)
        self.logo.place(x=1000, y=200)
        self.ranking['text'] = self.imprimir_ranking()
        self.ranking.place(x=25, y=43)

    def ganhou(self):
        """Este metodo serve para mostrar a mensagem de - ganhou partida."""
        self.saldo_carteira = self.saldo_carteira + (self.valor_aposta * 3)
        self.saldo_carteira_lb['text'] = self.saldo_carteira
        self.reinicio['image'] = self.reinicioimg
        self.reinicio.place(x=748, y=500)
        self.mPer['image'] = self.img_olho_cima_ganhou
        self.mperfil['image'] = self.img_olho_perdeu
        self.estadoBtn("desativa")
        self.ganhouSom()
        self.tiralogo()
        self.resultadoTela("sim")
        self.lbJogador['text'] = ''
        self.lbMaquina['text'] = ''
        self.logo['image'] = ''
        self.medalha['image'] = self.imgMedalha
        self.medalha.place(x=330, y=220)
        self.logo.place(x=1000, y=200)
        self.inserir_no_ranking(self.saldo_carteira)
        self.ranking['text'] = self.imprimir_ranking()
        self.ranking.place(x=25, y=43)

    def perdeu(self):
        """Este metodo serve para mostrar a mensagem de - perdeu partida."""
        self.saldo_carteira_lb['text'] = self.saldo_carteira
        self.reinicio['image'] = self.reinicioimg
        self.reinicio.place(x=748, y=500)
        self.mPer['image'] = self.img_olho_cima_perdeu
        self.mperfil['image'] = self.img_olho_ganhou
        self.estadoBtn("desativa")
        self.perdeuSom()
        self.tiralogo()
        self.resultadoTela("sim")
        self.lbJogador['text'] = ''
        self.lbMaquina['text'] = ''
        self.logo['image'] = ''
        self.perdeuimg['image'] = self.imgPerdeu
        self.perdeuimg.place(x=330, y=220)
        self.logo.place(x=1000, y=200)
        self.ranking['text'] = self.imprimir_ranking()
        self.ranking.place(x=25, y=43)

    def play(self):
        """Este metodo serve para ser chamado quando precisar iniciar uma nova partida, e deve ser chamado por outros métodos"""
        self.ranking['text'] = self.imprimir_ranking()
        self.ranking.place(x=25, y=43)
        self.rank['image'] = self.imgrank
        self.zeraLimpa()
        self.jogar()
        self.estadoBtn("ativa")
        self.inicio['image'] = ''
        self.logo['image'] = self.imglogo
        self.medalha['image'] = ''
        self.medalha.place(x=1000, y=200)
        self.perdeuimg['image'] = ''
        self.perdeuimg.place(x=1000, y=200)
        self.inicio.place(x=1000, y=200)
        self.logo.place(x=340, y=240)
        self.reinicio.place(x=748, y=500)

    def EmbaralharSom(self):
        """Este metodo serve para tocar o som de - embaralhamento de cartas"""
        mixer.music.load('sounds/emb3.wav')  # embaralhar
        mixer.music.play()

    def perdeuSom(self):
        """Este metodo serve para tocar o som de - perdeu"""
        mixer.music.load('sounds/uhoh.mp3')  # perdeu
        mixer.music.play()

    def ganhouSom(self):
        """Este metodo serve para tocar o som de - ganhou"""
        mixer.music.load('sounds/ganhou.mp3')  # ganhou
        mixer.music.play()

    def puxacartaSom(self):
        """Este metodo serve para tocar o som de - compra de carta"""
        mixer.music.load('sounds/DEAL1.wav')  # puxando carta
        mixer.music.play()

    def cliqueMoeda(self):
        """Este método serve para tocar o som de - clique ao pressionar uma ficha de aposta"""
        mixer.music.load('sounds/moeda2.wav')  # clique
        mixer.music.play()

    def adicionaCartaSlot(self, jogador, url):
        """Este metodo serve para sobrepor as cartas que o jogador/maquina compra uma do lado da outra na tela de jogo."""
        if jogador == "jogador":
            self.m3.place(x=320, y=460)
            self.m4.place(x=350, y=460)
            self.qtdCartasJogador = self.qtdCartasJogador + 1
            if self.qtdCartasJogador == 3:
                self.imag1Carta['file'] = url
                self.imag1.place(x=380, y=460)
            elif self.qtdCartasJogador == 4:
                self.imag2Carta['file'] = url
                self.imag2.place(x=410, y=460)
            elif self.qtdCartasJogador == 5:
                self.imag3Carta['file'] = url
                self.imag3.place(x=440, y=460)
            elif self.qtdCartasJogador == 6:
                self.imag4Carta['file'] = url
                self.imag4.place(x=470, y=460)
            elif self.qtdCartasJogador == 7:
                self.imag5Carta['file'] = url
                self.imag5.place(x=500, y=460)
        else:
            self.m.place(x=320, y=30)
            self.img2['file'] = self.urlDesvira
            self.m2.place(x=350, y=30)

            self.qtdCartasMaquina = self.qtdCartasMaquina + 1
            if self.qtdCartasMaquina == 3:
                self.imag6Carta['file'] = url
                self.imag6.place(x=380, y=30)

            elif self.qtdCartasMaquina == 4:
                self.imag7Carta['file'] = url
                self.imag7.place(x=410, y=30)

            elif self.qtdCartasMaquina == 5:
                self.imag8Carta['file'] = url
                self.imag8.place(x=440, y=30)

            elif self.qtdCartasMaquina == 6:
                self.imag9Carta['file'] = url
                self.imag9.place(x=470, y=30)

            elif self.qtdCartasMaquina == 7:
                self.imag10Carta['file'] = url
                self.imag10.place(x=500, y=30)

    def puxarcarta(self):
        """Este metodo serve para a compra de mais cartas- botão (comprar)."""
        self.mPer['image'] = self.img_olho_virado
        self.puxacartaSom()
        self.cartasJogador.append(self.bara.topo_da_pilha())
        url1 = self.criaString(self.descobreCarta(self.cartasJogador))
        self.adicionaCartaSlot("jogador", url1)
        jogador = self.Trata(self.cartasJogador)
        self.valorJogador = self.placarGeral(jogador)
        self.lbJogador['text'] = self.valorJogador

        if self.valorJogador > 21:
            if self.valorMaquina > 21:
                self.empatou()
                self.desvira()
                self.zerarPartida()
                self.lbJogador['text'] = ''
                self.lbMaquina['text'] = ''
            else:
                self.perdeu()
                #1-perdeu@ MAQUINA VALOR MENOR QUE 21
                self.desvira()
                self.zerarPartida()
                self.lbJogador['text'] = ''
                self.lbMaquina['text'] = ''
                if self.saldo_carteira < 1:
                    messagebox.showinfo("Que pena!", "Perdeu tudo!")
                    self.voltar()

    def pararcarta(self):
        """Este metodo serve para a maquina decidir se compra ou não mais cartas, se ela decidir comprar então esta ação é feita."""
        if self.valorJogador == self.valorMaquina:
            self.empatou()
            self.desvira()
            #ESPECIAL#-maquina empatou pois os valores eram iguais NO INICIO
            self.zerarPartida()
        elif self.valorJogador > 21:
            self.perdeu()
            self.desvira()
            # especial2 - MAQUINA TINHA VALOR ABAIXO DE 21 E JOGADOR 22. DE CARA.azar MAIOR
            self.zerarPartida()
            if self.saldo_carteira < 1:
                messagebox.showinfo("Que pena!", "Perdeu tudo!")
                self.voltar()

        elif self.valorMaquina > 21:
            self.ganhou()
            self.desvira()
            #- especial - Maquina iniciou com 22 de cara: sorte...
            self.zerarPartida()
        elif self.valorMaquina > self.valorJogador:
            self.perdeu()
            self.desvira()
            #2-perdeu, maquina tinha valor maior!
            self.zerarPartida()
            if self.saldo_carteira < 1:
                messagebox.showinfo("Que pena!",
                                    "Perdeu tudo!")  #ALERTA PERDEU TUDO.
                self.voltar()

        else:
            # maquina joga!@
            while (self.valorMaquina < self.valorJogador):
                self.cartasMaquina.append(self.bara.topo_da_pilha())
                url2 = self.criaString(self.descobreCarta(self.cartasMaquina))
                self.adicionaCartaSlot("maquina", url2)
                maquina = self.Trata(self.cartasMaquina)
                self.valorMaquina = self.placarGeral(maquina)
                self.lbMaquina['text'] = self.valorMaquina

            if self.valorMaquina == self.valorJogador:
                self.empatou()
                #empate! maquina decidiu empatar com vc!
                self.zerarPartida()
            elif self.valorMaquina > 21:
                self.ganhou()
                #ganhou! maquina estourou valor!
                self.zerarPartida()
            elif self.valorMaquina == 21:
                self.perdeu()
                #perdeu, maquina fez exatamente21!
                self.zerarPartida()
                if self.saldo_carteira < 1:
                    messagebox.showinfo("Que pena!",
                                        "Perdeu tudo!")  #ALERTA PERDEU TUDO.
                    self.voltar()

            else:
                self.perdeu()
                #2-perdeu! maquina venceu abaixo de 21!
                self.zerarPartida()
                if self.saldo_carteira < 1:
                    messagebox.showinfo("Que pena!",
                                        "Perdeu tudo!")  # ALERTA PERDEU TUDO.
                    self.voltar()

    def voltar(self):
        """Este metodo serve para fechar a janela do jogo blackjack E RETORNAR PARA A JANELA PRINCIPAL DO GAME."""
        pygame.quit()
        self.janela.destroy()

    def placarGeral(self, v):
        """Este metodo serve para somar o valor das cartas da maquina ou do jogador"""
        t = ''
        soma = 0
        for i in range(len(v)):
            soma = soma + v[i]
            t = t + str(v[i]) + ", "
        #("jogador ou maquina " + t + " PTs: " + str(soma)) esta string mostra o valor nos vetores. usada apenas em debugs
        return soma

    def Trata(self, cartas):
        """Este metodo serve para tratar a matriz que contém as cartas e retornar apenas um vetor com o valor das cartas do jogador/maquina"""
        vet = []
        for i in range(len(cartas)):
            carM = 0
            carM = int(cartas[i][0])
            vet.append(carM)
        return vet

    def criaString(self, entrada):
        """Este metodo serve para criar a string de URL(caminho) que será passada na hora de chamar a m_principal de alguma carta"""
        s = "imagem/Baralho\ " + str(entrada) + ".png"
        return s.replace(" ", "")

    def descobreCarta(self, mat):
        """Este metodo serve para retornar o nome da ultima carta comprada."""
        ultima = mat[-1]
        valor = ''
        valor = ultima[1] + ultima[2][0]
        return valor

    def jogar(self):
        """Este metodo serve para iniciar uma partida entre jogador/maquina."""
        self.EmbaralharSom()
        urlFechada = r"imagem/cartafechada.png"
        self.cartasMaquina = []
        self.cartasJogador = []
        self.valorJogador = 0
        self.valorMaquina = 0

        self.bara.gerar_baralho()  # gerando baralho
        self.bara.pilha_embaralhar()  #Embaralhando as cartas.

        self.cartasMaquina.append(self.bara.topo_da_pilha(
        ))  #apendando na lista cartasMaquina o topo da Pilha
        url1 = self.criaString(self.descobreCarta(self.cartasMaquina))

        self.cartasJogador.append(self.bara.topo_da_pilha())
        url3 = self.criaString(self.descobreCarta(self.cartasJogador))

        self.cartasMaquina.append(self.bara.topo_da_pilha())
        # este não possui URL pois esta carta esta virada para baixo.
        self.urlDesvira = self.criaString(
            self.descobreCarta(self.cartasMaquina))
        # a url foi criada para desvirar esta carta no futuro. e fica salva numa global.

        self.cartasJogador.append(self.bara.topo_da_pilha(
        ))  # Appendando na lista cartasJogador o topo da Pilha.
        url4 = self.criaString(self.descobreCarta(self.cartasJogador))
        self.img1['file'] = url1
        self.img2['file'] = urlFechada
        self.img3['file'] = url3
        self.img4['file'] = url4

        maquina = self.Trata(
            self.cartasMaquina)  #TRATANDO OS VALORES DA MAQUINA
        jogador = self.Trata(
            self.cartasJogador)  #TRANADO OS VALORES DO JOGADOR

        self.valorMaquina = self.placarGeral(
            maquina)  #DESCOBRINDO O VALOR DA PONTUAÇÃO.
        self.valorJogador = self.placarGeral(jogador)
        self.lbMaquina['text'] = maquina[0]
        self.lbJogador['text'] = self.valorJogador