Olá
Estou confuso com alguns detalhes do esqueleto do ep2 que parecem ser inconsistências do código.
--> Existe um string que não está fechado, o 'Z' na main(), o que implica que devemos alterar essa parte do esqueleto.
--> Há referência, na main(), a uma função fim(tabuleiro) que não está definida. Há entretanto, em existem_movimentos_validos(tabuleiro), um print(Implemente a função fim()). As duas funções parecem ser, entretanto, a negação lógica uma da outra. Enquanto existem_movimentos_validos(tabuleiro) retorna verdade caso ainda existam movimentos válidos, fim(tabuleiro) parece retornar verdade caso não hajam mais movimentos válidos. Teremos que mexer no esqueleto para fazer o programa rodar?
André