Beispiel #1
0
def mouseClica(event):
    global valorDado, jogo
    c = 0
    cores = ["red", "green", "yellow", "blue"]
    pecaEscolhida = escolhePeca(jogo['tabuleiro'], jogo['jogadorVez'],
                                [event.x, event.y])
    if pecaEscolhida == -1:
        return

    if ludo.podeMoverPeca(jogo['tabuleiro'], jogo['jogadorVez'], pecaEscolhida,
                          valorDado):
        jogadorVez = jogo['jogadorVez']
        c = ludo.moverPeca(jogo, pecaEscolhida, valorDado, True)
        des_canvas.aposclique()
        if jogo['tabuleiro'][jogadorVez].count(58) == 4:
            colocacao = list(range(4))
            colocacao.sort(key=lambda j: sum(
                [ludo.casaJogador(p, j) for p in jogo['tabuleiro'][j]]),
                           reverse=True)
            print(colocacao)
            mensagem = ""
            i = 0
            for j in colocacao:
                i += 1
                mensagem += "Colocação " + str(i) + ":  " + cores[j] + "\n"
            messagebox.showinfo(message=mensagem)

    if c == 6:
        escolheuDado(6)
    return
Beispiel #2
0
def trata5():
    global jogo

    if not ludo.casaInicialVazia(jogo['tabuleiro'], jogo['jogadorVez']):
        if ludo.casaSaidaVazia(jogo['tabuleiro'], jogo['jogadorVez']):
            pecaEscolhida = jogo['tabuleiro'][jogo['jogadorVez']].index(0)
            if ludo.podeMoverPeca(jogo['tabuleiro'], jogo['jogadorVez'],
                                  pecaEscolhida, 5):
                ludo.moverPeca(jogo, pecaEscolhida, 5, True)
                des_canvas.aposclique()
Beispiel #3
0
def lanca():
    global jogo, valorDado
    valorDado = ludo.jogarDado()
    des_canvas.jogou(valorDado)

    if ludo.casaInicialCheia(jogo['tabuleiro'], jogo['jogadorVez']):
        if valorDado != 5:
            ludo.proximo(jogo)
            des_canvas.aposclique()

    if valorDado == 5:
        trata5()
Beispiel #4
0
def mouseClica(event):
    global valorDado, jogo

    pecaEscolhida = escolhePeca(jogo['tabuleiro'], jogo['jogadorVez'],
                                [event.x, event.y])
    if pecaEscolhida == -1:
        return

    if ludo.podeMoverPeca(jogo['tabuleiro'], jogo['jogadorVez'], pecaEscolhida,
                          valorDado):
        ludo.moverPeca(jogo, pecaEscolhida, valorDado, True)
        des_canvas.aposclique()

    return
Beispiel #5
0
def lanca():
    global lancou
    lancou = True
    global jogo, valorDado
    valorDado = ludo.jogarDado()
    des_canvas.jogou(valorDado)

    if not [
            p for p in range(4) if ludo.podeMoverPeca(
                jogo['tabuleiro'], jogo['jogadorVez'], p, valorDado)
    ]:
        ludo.proximo(jogo)
        des_canvas.aposclique()
        return

    if ludo.casaInicialCheia(jogo['tabuleiro'], jogo['jogadorVez']):
        if valorDado != 5:
            ludo.proximo(jogo)
            des_canvas.aposclique()

    if valorDado == 5:
        trata5()
Beispiel #6
0
def moverPeca(jogo, peca, valorDado, ehValorDado):
    global capt
    ehValorDado = True
    if not podeMoverPeca(jogo['tabuleiro'], jogo['jogadorVez'], peca,
                         valorDado):
        return
    if valorDado == 5:
        if jogo['tabuleiro'][jogo['jogadorVez']][peca] == 0:
            jogo['tabuleiro'][jogo['jogadorVez']][peca] = casaSaida(
                jogo['jogadorVez'])
            for oponente in oponentes(jogo['jogadorVez']):
                cap = 10
                if casaSaida(
                        jogo['jogadorVez']) in jogo['tabuleiro'][oponente]:
                    for i in range(4):
                        if jogo['tabuleiro'][oponente][i] == casaSaida(
                                jogo['jogadorVez']):
                            cap = i
                if cap != 10:
                    jogo['tabuleiro'][oponente][cap] = 0
            proximo(jogo)
            return
    elif valorDado == 6:
        if jogo['qtdDado6'] == 2:
            if jogo['tabuleiro'][jogo['jogadorVez']][
                    jogo['pecaAnterior6']] <= ultimaCasaBranca(0):
                jogo['tabuleiro'][jogo['jogadorVez']][
                    jogo['pecaAnterior6']] = 0
            jogo['qtdDado6'] = 0
            proximo(jogo)
            return True
    if casaJogador(
            jogo['tabuleiro'][jogo['jogadorVez']][peca],
            jogo['jogadorVez']) <= ultimaCasaBranca(0) and ultimaCasaBranca(
                0) < (casaJogador(jogo['tabuleiro'][jogo['jogadorVez']][peca],
                                  jogo['jogadorVez']) + valorDado) < casaFinal:
        jogo['tabuleiro'][jogo['jogadorVez']][peca] = casaTabuleiro(
            casaJogador(jogo['tabuleiro'][jogo['jogadorVez']][peca],
                        jogo['jogadorVez']) + valorDado + 1,
            jogo['jogadorVez'])
    else:
        jogo['tabuleiro'][jogo['jogadorVez']][peca] = casaTabuleiro(
            casaJogador(jogo['tabuleiro'][jogo['jogadorVez']][peca],
                        jogo['jogadorVez']) + valorDado, jogo['jogadorVez'])
    for oponente in oponentes(jogo['jogadorVez']):
        if jogo['tabuleiro'][jogo['jogadorVez']][peca] <= (
                ultimaCasaBranca(0) + 1) and jogo['tabuleiro'][
                    jogo['jogadorVez']][peca] in jogo['tabuleiro'][oponente]:
            for i in range(4):
                if jogo['tabuleiro'][jogo['jogadorVez']][peca] == jogo[
                        'tabuleiro'][oponente][i]:
                    cap = i
            if not jogo['tabuleiro'][oponente][cap] in abrigos and not jogo[
                    'tabuleiro'][oponente][cap] == casaSaida(oponente):
                jogo['tabuleiro'][oponente][cap] = 0
                jogo['qtdDado6'] = 0
                capt = 1
                des_tela.lancar['state'] = tkinter.DISABLED
                ehValorDado = False
                return 6
    if capt == 1:
        jogo['qtdDado6'] = 0
        des_tela.lancar['state'] = tkinter.DISABLED
        capt = 0
        #proximo(jogo)
        ehValorDado = False
        des_canvas.aposclique()
    if jogo['tabuleiro'][jogo['jogadorVez']][peca] == casaFinal:
        capt = 1
        jogo['qtdDado6'] = 0
        des_tela.lancar['state'] = tkinter.DISABLED
        ehValorDado = False
        return 6
    if valorDado == 6 and ehValorDado:
        jogo['pecaAnterior6'] = peca
        jogo['qtdDado6'] += 1
        jogo['jogadorVez'] -= 1
    if valorDado != 6:
        jogo['qtdDado6'] = 0
    proximo(jogo)
    return 1