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