def dado_vale_6(canvas_ops, canvas_tabuleiro): global vez, my_canvas, dado vez = game_rules.get_vez() cores_peca = ["blue", "yellow", "green", "red"] canvas_ops.create_rectangle(150, 80, 240, 160, fill=cores_peca[vez]) dado = 6 label_img = Label() label_img.config(image='') label_img.image = PhotoImage(file="dado_6.png") a = label_img.image label_img.config(image="") label_img.image = a canvas_ops.create_image(180, 100, image=label_img.image, anchor=NW) seis_count = game_rules.get_seis_count() if seis_count < 3: game_rules.muda_6_count() canvas_tabuleiro.bind("<Button-1>", clica) else: game_rules.seis_tres_vezes_seguidas() vez = game_rules.vez_do_proximo() draw_canvas.limpa_tabuleiro(canvas_move_peca, root_move_peca) draw_canvas.desenha(canvas_move_peca, root_move_peca) if game_rules.tem_pecas_no_tabuleiro(vez) == False: vez = game_rules.vez_do_proximo() else: canvas_tabuleiro.bind("<Button-1>", clica)
def dado_vale_5(canvas_ops, canvas_tabuleiro): global vez, my_canvas, root_move_peca, dado vez = game_rules.get_vez() cores_peca = ["blue", "yellow", "green", "red"] canvas_ops.create_rectangle(150, 80, 240, 160, fill=cores_peca[vez]) dado = 5 label_img = Label() label_img.config(image='') label_img.image = PhotoImage(file="dado_5.png") a = label_img.image label_img.config(image="") label_img.image = a canvas_ops.create_image(180, 100, image=label_img.image, anchor=NW) if dado == 5: if game_rules.pode_mover_casa_saida(vez) == True: game_rules.tirou_5_no_dado(vez) vez = game_rules.vez_do_proximo() canvas_tabuleiro = draw_canvas.get_canvas() root_move_peca = draw_canvas.get_root() draw_canvas.desenha(canvas_tabuleiro, root_move_peca) # nao pode mover para casa de saída e nao tem peca no tabuleiro # elif game_rules_certo_tlvz.tem_pecas_na_casaInicial(vez) == False: elif game_rules.tem_pecas_no_tabuleiro(vez) == False: vez = game_rules.vez_do_proximo() # nao pode mover para casa de saída, mas tem peça no tabuleiro else: canvas_tabuleiro.bind("<Button-1>", clica) elif game_rules.tem_pecas_no_tabuleiro(vez) == False: vez = game_rules.vez_do_proximo() else: canvas_tabuleiro.bind("<Button-1>", clica)
def dado_vale_4(canvas_ops, canvas_tabuleiro): global vez, my_canvas, dado vez = game_rules.get_vez() cores_peca = ["blue", "yellow", "green", "red"] canvas_ops.create_rectangle(150, 80, 240, 160, fill=cores_peca[vez]) dado = 4 label_img = Label() label_img.config(image='') label_img.image = PhotoImage(file="dado_4.png") a = label_img.image label_img.config(image="") label_img.image = a canvas_ops.create_image(180, 100, image=label_img.image, anchor=NW) if game_rules.tem_pecas_no_tabuleiro(vez) == False: vez = game_rules.vez_do_proximo() else: canvas_tabuleiro.bind("<Button-1>", clica)
def click_joga_dado(canvas_ops, canvas_tabuleiro, houve_captura=False, peca_chegou_na_casa_final=False): global vez, my_canvas, dado, seis_count, dado_button, esperando_jogada dado_button = draw_canvas.get_dado_button() salvar_jogo_button = draw_canvas.get_salvar_jogo_button() canvas_move_peca = draw_canvas.get_canvas() root_move_peca = draw_canvas.get_root() dado = game_rules.joga_dado() # BLOQUEIA O BOTÃO DE LANÇAR O DADO ATE MEXER UMA PEÇA vez = game_rules.get_vez() if game_rules.tem_pecas_no_tabuleiro(vez): dado_button["state"] = DISABLED salvar_jogo_button["state"] = DISABLED vez = game_rules.get_vez() # desenha cor de fundo do dado cores_peca = ["blue", "yellow", "green", "red"] canvas_ops.create_rectangle(150, 80, 240, 160, fill=cores_peca[vez]) dado = game_rules.joga_dado() # se houve captura a pessoa joga de novo com 6 no dado if houve_captura == True or peca_chegou_na_casa_final == True: dado = 6 houve_captura == False game_rules.muda_houve_captura_para_falso() canvas_tabuleiro.bind("<Button-1>", clica) if dado != 5: esperando_jogada = True label_img = Label() label_img.config(image='') if dado == 1: label_img.image = PhotoImage(file="dado_1.png") elif dado == 2: label_img.image = PhotoImage(file="dado_2.png") elif dado == 3: label_img.image = PhotoImage(file="dado_3.png") elif dado == 4: label_img.image = PhotoImage(file="dado_4.png") elif dado == 5: label_img.image = PhotoImage(file="dado_5.png") else: label_img.image = PhotoImage(file="dado_6.png") a = label_img.image label_img.config(image="") label_img.image = a canvas_ops.create_image(180, 100, image=label_img.image, anchor=NW) # se tirou 6 no dado seis_count = game_rules.get_seis_count() if dado == 6: if seis_count < 3: seis_count += 1 canvas_tabuleiro.bind("<Button-1>", clica) else: game_rules.seis_tres_vezes_seguidas() vez = game_rules.vez_do_proximo() draw_canvas.limpa_tabuleiro(canvas_move_peca, root_move_peca) draw_canvas.desenha(canvas_move_peca, root_move_peca) # se dado for 5 mover peca pra casa de saida if dado == 5: # pode mover para casa de saida if game_rules.pode_mover_casa_saida(vez) == True: game_rules.tirou_5_no_dado(vez) vez = game_rules.vez_do_proximo() root_move_peca = draw_canvas.get_root() dado_button["state"] = NORMAL # ativo o botao do dado novamente draw_canvas.desenha(canvas_tabuleiro, root_move_peca) # nao pode mover para casa de saída e nao tem peca no tabuleiro elif game_rules.tem_pecas_no_tabuleiro(vez) == False: vez = game_rules.vez_do_proximo() # nao pode mover para casa de saída, mas tem peça no tabuleiro else: canvas_tabuleiro.bind("<Button-1>", clica) # TIROU UM NUMERO DIFERENTE DE 5 E NÃO TEM PEÇAS NO TABULEIRO PARA MOVER elif game_rules.tem_pecas_no_tabuleiro(vez) == False: vez = game_rules.vez_do_proximo() else: canvas_tabuleiro.bind("<Button-1>", clica)
def clica(e): global dado, canvas_move_peca, root_move_peca, cores_peca, vez, seis_count, esperando_jogada, dado_button caminho_prin = game_rules.get_caminho_principal() pos_peca = calcula_posicao_tabuleiro(e.x, e.y) seis_count = game_rules.get_seis_count() canvas_move_peca = draw_canvas.get_canvas() root_move_peca = draw_canvas.get_root() if type(pos_peca) is not tuple: # se for tupla, peca está na casa final if pos_peca != None and tem_peca_na_posicao(pos_peca) == True: if cor_da_peca_na_posicao_clicada_igual_a_vez( pos_peca, vez) == True: # so pode mexer peca da cor da vez game_rules.move_peca(vez=vez, dado=dado, pos_atual_caminho_principal=pos_peca) # verifica o que fica na casa que a peca saiu tipo_de_casa = qual_tipo_de_casa(pos_peca) if tipo_de_casa == "CASA NORMAL": draw_canvas.desenha_quadrado(canvas_move_peca, pos_peca, tipo_de_casa) if tipo_de_casa == "ABRIGO": cor_de_mudanca = qual_outra_cor_abrigo(pos_peca) draw_canvas.desenha_quadrado( canvas_move_peca, pos_peca, tipo_de_casa, cor_de_mudanca=cores_peca[cor_de_mudanca]) if tipo_de_casa == "BARREIRA": draw_canvas.desenha_quadrado( canvas_move_peca, pos_peca, tipo_de_casa, cor_de_mudanca=cores_peca[vez]) draw_canvas.desenha(canvas_move_peca, root_move_peca) if dado != 6: vez = game_rules.vez_do_proximo() else: game_rules.muda_6_count() if seis_count == 2: game_rules.seis_tres_vezes_seguidas() vez = game_rules.vez_do_proximo() draw_canvas.limpa_tabuleiro(canvas_move_peca, root_move_peca) draw_canvas.desenha(canvas_move_peca, root_move_peca) # permite apertar o botao de lancar o dado dado_button = draw_canvas.get_dado_button() dado_button["state"] = NORMAL salvar_jogo_button = draw_canvas.get_salvar_jogo_button() salvar_jogo_button["state"] = NORMAL elif type(pos_peca) is tuple: # peça está na reta final game_rules.move_peca(vez=pos_peca[-1], dado=dado, pos_atual_reta_final=pos_peca[0]) draw_canvas.desenha(canvas_move_peca, root_move_peca) dado_button = draw_canvas.get_dado_button() dado_button["state"] = NORMAL salvar_jogo_button = draw_canvas.get_salvar_jogo_button() salvar_jogo_button["state"] = NORMAL # Passando a vez para o proximo vez = game_rules.vez_do_proximo() # MOSTRA QUEM GANHOU if game_rules.verifica_vitoria(): list_vencedor = game_rules.verifica_vitoria() draw_canvas.messagebox.showinfo( "{} GANHOU".format(cores_peca[list_vencedor[0]].upper()), "1o - {}\n2o - {}\n3o - {}\n4o - {}".format( cores_peca[list_vencedor[0]].upper(), cores_peca[list_vencedor[1]].upper(), cores_peca[list_vencedor[2]].upper(), cores_peca[list_vencedor[3]].upper()))