Xadrez_malaga

                Never    
from random import *
import time
def Define_N():
    n = ""
    while type(n) != int:
        n = input("Tamanho do tabuleiro :")
        if n.isdigit():
            n = int(n)
            if not 3 <= n <= 8:
                n = n.__str__()
                print("\n", "Escolha Um Número de 3 até 8", "\n")
        else:
            print("\n", "Escolha Um Número de 3 até 8", "\n")
    return n
def Matriz_Inicial(N):
    matriz_inicial = [[0] * N for _ in range(N)]
    count_X = 0
    count_Y = 1
    while count_X < N:
        matriz_inicial[0][count_X] = 1
        count_X += 1
    while count_Y <= N - 1:
        count_X = 0
        while count_X < N:
            matriz_inicial[count_Y][count_X] = 0
            count_X += 1
        count_Y += 1
    count_X = 0
    while count_X < N:
        matriz_inicial[N - 1][count_X] = 2
        count_X += 1
    return matriz_inicial
def print_Matriz (Matriz,N):
    count_X=0
    count_Y=0
    while count_Y<N:
        count_X = 0
        while count_X < N:
            print(Matriz[count_Y][count_X]," ",end='')
            count_X+=1
        if count_Y<N-1:
            print()
        count_Y+=1
    print()
def Jogada_Possivel_Jogador1(Matriz,N,CordY,CordX,Movi):
    Possivel = False
    if Matriz[CordY][CordX] == 1:
        if Movi == 1:
            if CordX != 0:
                if (Matriz[CordY + 1][CordX - 1] == 2):
                    Possivel = True
        if Movi == 2:
            if (Matriz[CordY + 1][CordX + 0] == 0):
                Possivel = True
        if Movi == 3:
            if CordX != N-1:
                if (Matriz[CordY + 1][CordX + 1] == 2):
                    Possivel = True
    return Possivel
def Jogada_do_jogador_1(Matriz,N):
    CordX =""
    CordY=""
    Movi=""
    jogada_possivel = False
    while not jogada_possivel:
        print("Insira um valor de 1 a", N , end='')
        CordY = input(" para a linha da peça que deseja mover :")
        print("Insira um valor de 1 a", N, end='')
        CordX = input(" para a coluna da peça que deseja mover :")
        Movi = input("Qual movimento deseja fazer? (1,2,3) :")
        if CordX.isdigit():
            CordX = int(CordX) - 1
            if not 0 <= CordX<= N-1:
                CordX = ""
        if CordY.isdigit():
            CordY = int(CordY) - 1
            if not 0 <= CordY<= N-1:
                CordY = ""
        if Movi.isdigit():
            Movi = int(Movi)
            if not 1 <= Movi<= 3:
                Movi = ""

        if type(CordX) == int and type(CordY) == int and type(Movi) == int :
            if Jogada_Possivel_Jogador1(Matriz,N,CordY,CordX,Movi):
                if Movi == 1:
                    Matriz[CordY][CordX] = 0
                    Matriz[CordY + 1][CordX - 1] = 1
                if Movi == 2:
                    Matriz[CordY][CordX] = 0
                    Matriz[CordY + 1][CordX + 0] = 1
                if Movi == 3:
                    Matriz[CordY][CordX] = 0
                    Matriz[CordY + 1][CordX + 1] = 1
                print("\n","\n","\n","\n","\n","\n","\n","\n","\n")
                print_Matriz(Matriz, N)
                jogada_possivel = True
            else:
                print(" Jogada Impossível ")
        else:
            print(" Jogada Impossível  ")
    return Matriz
def Jogada_Possivel_Jogador2(Matriz,N,CordY,CordX,Movi):
    Possivel = False
    if Matriz[CordY][CordX] == 2:
        if Movi == 1:
            if CordX != 0:
                if (Matriz[CordY - 1][CordX - 1] == 1):
                    Possivel = True
        if Movi == 2:
            if (Matriz[CordY - 1][CordX + 0] == 0):
                Possivel = True
        if Movi == 3:
            if CordX != N-1:
                if (Matriz[CordY - 1][CordX + 1] == 1):
                    Possivel = True
    return Possivel
def Jogada_do_jogador_2(Matriz,N):
    CordX =""
    CordY=""
    Movi=""
    jogada_possivel = False
    while not jogada_possivel:
        print("Insira um valor de 1 a", N ,end='')
        CordY = input(" para a LINHA da peça que deseja mover :")
        print("Insira um valor de 1 a", N, end='')
        CordX = input(" para a COLUNA da peça que deseja mover :")
        Movi = input("Qual movimento deseja fazer? (1,2,3) :")
        if CordX.isdigit():
            CordX = int(CordX) - 1
            if not 0 <= CordX<= N-1:
                CordX = ""
        if CordY.isdigit():
            CordY = int(CordY) - 1
            if not 0 <= CordY<= N-1:
                CordY = ""
        if Movi.isdigit():
            Movi = int(Movi)
            if not 1 <= Movi<= 3:
                Movi = ""

        if type(CordX) == int and type(CordY) == int and type(Movi) == int :
            if Jogada_Possivel_Jogador2(Matriz,N,CordY,CordX,Movi):
                if Movi == 1:
                    Matriz[CordY][CordX] = 0
                    Matriz[CordY - 1][CordX - 1] = 2
                if Movi == 2:
                    Matriz[CordY][CordX] = 0
                    Matriz[CordY - 1][CordX + 0] = 2
                if Movi == 3:
                    Matriz[CordY][CordX] = 0
                    Matriz[CordY - 1][CordX + 1] = 2
                print("\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n")
                print_Matriz(Matriz, N)
                jogada_possivel = True
            else:
                print(" Jogada Impossível ")
        else:
            print(" Jogada Impossível ")
    return Matriz
def Jogador_1_venceu(Matriz,N):
    aux = False
    aux_2 = True
    countX = 0
    countY = 0
    count = 0
    while countY < N:
        countX = 0
        while countX < N:
            if Matriz[countY][countX] == 2 and (Jogada_Possivel_Jogador2(Matriz,N,countY,countX,1) or Jogada_Possivel_Jogador2(Matriz,N,countY,countX,2) or Jogada_Possivel_Jogador2(Matriz,N,countY,countX,3)):
                aux_2 = False
            countX+=1
        countY+=1
    while count < N:
        if Matriz[N-1][count] == 1:
            aux = True
        count+=1
    if aux or aux_2:
        jogador_1_venceu = True
    else:
        jogador_1_venceu = False
    return jogador_1_venceu
def Jogador_2_venceu(Matriz,N):
    aux = False
    aux_2 = True
    countX = 0
    countY = 0
    count = 0
    while countY < N:
        countX = 0
        while countX < N:
            if Matriz[countY][countX] == 1 and (Jogada_Possivel_Jogador1(Matriz,N,countY,countX,1) or Jogada_Possivel_Jogador1(Matriz,N,countY,countX,2) or Jogada_Possivel_Jogador1(Matriz,N,countY,countX,3)):
                aux_2 = False
            countX += 1
        countY += 1
    while count < N:
        if Matriz[0][count] == 2:
            aux = True
        count += 1
    if aux or aux_2:
        jogador_2_venceu = True
    else:
        jogador_2_venceu = False
    return jogador_2_venceu
def Jogadas_Possiveis_do_Jogador1(Matriz,N):
    matriz_inicial = []
    countX = 0
    countY = 0
    Movi = 0
    count = 0
    while countY < N:
        countX = 0
        while countX < N:
            Movi = 1
            while Movi <= 3:
                if Jogada_Possivel_Jogador1(Matriz, N, countY, countX, Movi):
                    matriz_inicial.append([countY, countX, Movi])
                    count += 1
                Movi += 1
            countX += 1
        countY += 1
    return matriz_inicial
def Jogadas_Possiveis_do_Jogador2(Matriz,N):
    matriz_inicial = []
    countX = 0
    countY = 0
    Movi = 0
    count = 0
    while countY < N:
        countX = 0
        while countX < N:
            Movi = 1
            while Movi <= 3:
                if Jogada_Possivel_Jogador2(Matriz,N,countY,countX,Movi):
                    matriz_inicial.append([countY,countX,Movi])
                    count+=1
                Movi+=1
            countX+=1
        countY+=1
    return matriz_inicial
def print_Todas_Jogadas_Possiveis_Jogador1(Matriz,N):
    print()
    print("TODAS AS JOGADAS POSSÍVEIS DO JOGADOR 1")
    print()
    aux = Jogadas_Possiveis_do_Jogador1(Matriz,N)
    count_1 = 0
    while count_1 <len(aux):
        print("Posição (",aux[count_1][0],",",aux[count_1][1],")","e Movimento ", aux[count_1][2])
        count_1+=1
    print()
def print_Todas_Jogadas_Possiveis_Jogador2(Matriz,N):
    print()
    print("TODAS AS JOGADAS POSSÍVEIS DO JOGADOR 2")
    print()
    aux = Jogadas_Possiveis_do_Jogador2(Matriz,N)
    count_1 = 0
    while count_1 < len(aux):
        print("Posição (",aux[count_1][0],",",aux[count_1][1],")","e Movimento ", aux[count_1][2])
        count_1+=1
    print()
def chances_da_jogada(chance,Matriz,N,jog):
    if jog == 1:
        mat = []
        for i in range(len(Jogadas_Possiveis_do_Jogador1(Matriz, N))):
            mat.append(chance / len(Jogadas_Possiveis_do_Jogador1(Matriz, N)))
        return mat
    elif jog == 2:
        mat = []
        for i in range(len(Jogadas_Possiveis_do_Jogador2(Matriz, N))):
            mat.append(chance / len(Jogadas_Possiveis_do_Jogador2(Matriz, N)))
        return mat

def Matriz_em_tup(Matriz,N):
    tup = []
    c = 0
    c1 = 0
    while c < N:
        c1 = 0
        while c1 < N:
            tup.append(Matriz[c][c1])
            c1 += 1
        c += 1
    return tup
def Matriz_em_tup_v2(Matriz,n):
    tup = []
    c = 0
    c1 = 0
    while c < n:
        c1 = 0
        while c1 < 3:
            tup.append(Matriz[c][c1])
            c1 += 1
        c += 1
    return tup

def Jogada_aleatoria(Matriz,N,jog):
    if jog == 1:
        jogada = choice(Jogadas_Possiveis_do_Jogador1(Matriz, N))
        CordY, CordX, Movi = jogada[0], jogada[1], jogada[2]
        if Movi == 1:
            Matriz[CordY][CordX] = 0
            Matriz[CordY + 1][CordX - 1] = 1
        if Movi == 2:
            Matriz[CordY][CordX] = 0
            Matriz[CordY + 1][CordX + 0] = 1
        if Movi == 3:
            Matriz[CordY][CordX] = 0
            Matriz[CordY + 1][CordX + 1] = 1
        return Matriz
    elif jog == 2:
        jogada = choice(Jogadas_Possiveis_do_Jogador2(Matriz, N))
        CordY, CordX, Movi = jogada[0], jogada[1], jogada[2]
        if Movi == 1:
            Matriz[CordY][CordX] = 0
            Matriz[CordY - 1][CordX - 1] = 2
        if Movi == 2:
            Matriz[CordY][CordX] = 0
            Matriz[CordY - 1][CordX + 0] = 2
        if Movi == 3:
            Matriz[CordY][CordX] = 0
            Matriz[CordY - 1][CordX + 1] = 2
        return Matriz
def Jogada_do_computador1(l_posi,l_chance,l_jogadas,Matriz,N,chance):
    if Matriz_em_tup(Matriz,N) not in l_posi:
        l_posi.append(Matriz_em_tup(Matriz,N))
        l_chance.append(chances_da_jogada(chance,Matriz,N,jog=1))
        l_jogadas.append(Matriz_em_tup_v2(Jogadas_Possiveis_do_Jogador1(Matriz,N),len(Jogadas_Possiveis_do_Jogador1(Matriz,N))))
    jogada = choice(Jogadas_Possiveis_do_Jogador1(Matriz,N))
    for i in range(len(l_posi)):
        if Matriz_em_tup(Matriz,N) == l_posi[i]:
            cont = i
    soma = 0
    for k in range(len(l_chance[cont])):
        soma += l_chance[cont][k]
    rand = uniform(0,soma)
    soma=0
    for i in range(len(l_chance[cont])):
        if soma<=rand<=soma+l_chance[cont][i]:
            jogada_feita = i
            jogada = l_jogadas[cont][i*3:i*3+3]
        soma+=l_chance[cont][i]
    CordY, CordX, Movi = jogada[0],jogada[1],jogada[2]
    if Jogada_Possivel_Jogador1(Matriz,N,CordY,CordX,Movi):
        if Movi == 1:
            Matriz[CordY][CordX] = 0
            Matriz[CordY + 1][CordX - 1] = 1
        if Movi == 2:
            Matriz[CordY][CordX] = 0
            Matriz[CordY + 1][CordX + 0] = 1
        if Movi == 3:
            Matriz[CordY][CordX] = 0
            Matriz[CordY + 1][CordX + 1] = 1
    return l_posi,l_chance,l_jogadas,Matriz,cont,jogada_feita
def Jogada_do_computador2(l_posi,l_chance,l_jogadas,Matriz,N,chance):
    if Matriz_em_tup(Matriz,N) not in l_posi:
        l_posi.append(Matriz_em_tup(Matriz,N))
        l_chance.append(chances_da_jogada(chance,Matriz,N,jog=2))
        l_jogadas.append(Matriz_em_tup_v2(Jogadas_Possiveis_do_Jogador2(Matriz,N),len(Jogadas_Possiveis_do_Jogador2(Matriz,N))))
    jogada = choice(Jogadas_Possiveis_do_Jogador2(Matriz,N))
    for i in range(len(l_posi)):
        if Matriz_em_tup(Matriz,N) == l_posi[i]:
            cont = i
    soma = 0
    for k in range(len(l_chance[cont])):
        soma += l_chance[cont][k]
    rand = uniform(0,soma)
    soma=0
    for i in range(len(l_chance[cont])):
        if soma<=rand<=soma+l_chance[cont][i]:
            jogada_feita = i
            jogada = l_jogadas[cont][i*3:i*3+3]
        soma+=l_chance[cont][i]
    CordY, CordX, Movi = jogada[0],jogada[1],jogada[2]
    if Jogada_Possivel_Jogador2(Matriz,N,CordY,CordX,Movi):
        if Movi == 1:
            Matriz[CordY][CordX] = 0
            Matriz[CordY - 1][CordX - 1] = 2
        if Movi == 2:
            Matriz[CordY][CordX] = 0
            Matriz[CordY - 1][CordX + 0] = 2
        if Movi == 3:
            Matriz[CordY][CordX] = 0
            Matriz[CordY - 1][CordX + 1] = 2
    return l_posi,l_chance,l_jogadas,Matriz,cont,jogada_feita
def Adicionar_Inteligência(comp_venceu,lista_chance,lista_conta_posi_jogada,index):
    if comp_venceu:
        for i in range(len(lista_conta_posi_jogada)):
            soma = 0
            conta = lista_conta_posi_jogada[i][0]
            jog_feita = lista_conta_posi_jogada[i][1]
            possivel = True
            for k in range(len(lista_chance[conta])):
                if k!=jog_feita and lista_chance[conta][k]-index/(len(lista_chance[conta])-1)<=0:
                    possivel = False
                soma += lista_chance[conta][k]
            if lista_chance[conta][jog_feita] + index < soma and possivel:
                lista_chance[conta][jog_feita] += index
                for j in range(len(lista_chance[conta])):
                    if j != jog_feita:
                        lista_chance[conta][j] -= index/(len(lista_chance[conta])-1)
    else:
        for i in range(len(lista_conta_posi_jogada)):
            soma=0
            conta = lista_conta_posi_jogada[i][0]
            jog_feita = lista_conta_posi_jogada[i][1]
            possivel = True
            for k in range(len(lista_chance[conta])):
                if k != jog_feita and lista_chance[conta][k] +index / (len(lista_chance[conta]) - 1) >= 10:
                    possivel = False
            if lista_chance[conta][jog_feita] - index > 0 and possivel:
                lista_chance[conta][jog_feita] -= index
                for j in range(len(lista_chance[conta])):
                    if j != jog_feita:
                        lista_chance[conta][j] += index/(len(lista_chance[conta])-1)
                    soma += lista_chance[conta][j]
    return lista_chance
def Definir_iterações():
    a = ''
    while type(a) == str:
        a = input('Gerações de treinamento: ')
        if a.isdigit():
            if int(a)>100:
                a = int(a)
            else:
                print()
                print('Digite um número maior que 100!')
                time.sleep(1)
                print()
        else:
            print()
            print('Digite apenas números!')
            print()
            time.sleep(1)
    return a
def Definir_jogador():
    a = ''
    while type(a)!=bool:
        a = input('Escolha qual jogador será treinado pelo computador: Digite 1 ou 2, respectivamente, para a escolha do jogador 1 ou jogador 2 :')
        if a == '1':
            a = True
        elif a == '2':
            a = False
        else:
            a =''
            print()
            print('Digite 1 ou 2!')
            print()
            time.sleep(1)
    return a
def Definir_tetodetreino():
    a = ''
    while True:
        a = input('Defina um teto de treino que será, junto com o index de treino, parâmetro para a eficácia do treinamento: ')
        if a.isdigit():
            if int(a)>=10:
                return int(a)
            else:
                print()
                print('Valor muito baixo! Considere valores maiores ou igual a 10!')
                print()
                time.sleep(1)
        else:
            print()
            print('Digite números!!')
            print()
            time.sleep(1)
def Definir_index(teto_trein):
    a = ''
    while True:
        a = input('Defina um index de treinamento. É recomendado um valor relativamente baixo em relação ao valor de treinamento (exemplo: 1,2)')
        if a.isdigit():
            if 0 <int(a) < teto_trein/4:
                return int(a)
            else:
                print()
                print('Valor para index de treinamento muito alto')
                print()
                time.sleep(1)
        else:
            print()
            print('Digite números!')
            print()
            time.sleep(1)



n = Define_N()
print()
iterações = Definir_iterações()
print()
jogador = Definir_jogador()
print()
chance = Definir_tetodetreino()
print()
index = Definir_index(chance)



print("\n","\n","\n","\n","\n","\n","\n","\n","\n","\n")
print('Tamanho do tabuleiro :',n)
if jogador:
    print('Jogador 1 será treinado')
else:
    print('Jogador 2 será treinado')
print('Iterações de treino :',iterações)
print('Parâmetro teto do treinamento :',chance)
print('Parâmetro index do treinamento :',index)
print('Aperte enter para começar o treinamento!')
print("\n","\n","\n","\n")
aa = input()

Matriz_Jogo = Matriz_Inicial(n)
jog_1_venceu = False
comp_2_venceu = False
comp_1_venceu = False

lista_posi_2=[]
lista_possibili_2 = []
lista_jogadas_2 = []
lista_conta_posi_jogada_2 = []
conta_2 = 0
jog_feita_2 = 0

if jogador:
    for i in range(iterações):
        Matriz_jogo = Matriz_Inicial(n)
        comp_1_venceu = False
        comp_2_venceu = False
        lista_conta_posi_jogada_2 = []
        lista_conta_posi_jogada_1 = []
        while not (comp_2_venceu or comp_1_venceu):
            if not comp_2_venceu:
                lista_posi_2, lista_possibili_2, lista_jogadas_2, Matriz_jogo, conta_2, jog_feita_2 = Jogada_do_computador1(lista_posi_2, lista_possibili_2, lista_jogadas_2, Matriz_jogo, n, chance)
                lista_conta_posi_jogada_2.append([conta_2, jog_feita_2])
                comp_1_venceu = Jogador_1_venceu(Matriz_jogo, n)
            if not comp_1_venceu:
                Matriz_jogo = Jogada_aleatoria(Matriz_jogo, n, jog=2)
                comp_2_venceu = Jogador_2_venceu(Matriz_jogo, n)

        lista_possibili = Adicionar_Inteligência(comp_1_venceu, lista_possibili_2, lista_conta_posi_jogada_2, index=index)
        if i % 100 == 0:
            print('Porcentagem do treinamento :', "%.2f" % (i / iterações * 100))
    print('Posições achadas no treinamento: ', len(lista_possibili_2))
    print('Tamanho do tabuleiro :', n)
    if jogador:
        print('Jogador 1 será treinado')
    else:
        print('Jogador 2 será treinado')
    print('Iterações de treino :', iterações)
    print('Parâmetro teto do treinamento :', chance)
    print('Parâmetro index do treinamento :', index)

    while True:
        Matriz_jogo = Matriz_Inicial(n)
        jog_1_venceu = False
        comp_2_venceu = False
        lista_conta_posi_jogada_2 = []

        while not (comp_2_venceu or jog_1_venceu):
            if not comp_2_venceu:
                print("\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n")
                lista_posi_2, lista_possibili_2, lista_jogadas_2, Matriz_jogo, conta_2, jog_feita_2 = Jogada_do_computador1(lista_posi_2, lista_possibili_2, lista_jogadas_2, Matriz_jogo, n, chance)
                lista_conta_posi_jogada_2.append([conta_2, jog_feita_2])
                print_Matriz(Matriz_jogo, n)
                jog_1_venceu = Jogador_1_venceu(Matriz_jogo, n)
            if not jog_1_venceu:
                Matriz_jogo = Jogada_do_jogador_2(Matriz_jogo, n)
                comp_2_venceu = Jogador_2_venceu(Matriz_jogo, n)

        if jog_1_venceu:
            print("\n", "\n", "\n", "\n", "\n", "\n", "\n")
            print_Matriz(Matriz_jogo, n)
            print("\n", "\n")
            print("  COMPUTADOR VENCEU!   ")

        if comp_2_venceu:
            print("\n", "\n", "\n", "\n", "\n", "\n", "\n")
            print_Matriz(Matriz_jogo, n)
            print("\n", "\n")
            print("  JOGADOR 2 VENCEUU!   ")
        time.sleep(2)
        lista_possibili_2 = Adicionar_Inteligência(jog_1_venceu, lista_possibili_2, lista_conta_posi_jogada_2,index=index)
else:
    for i in range(iterações):
        Matriz_jogo = Matriz_Inicial(n)
        comp_1_venceu = False
        comp_2_venceu = False
        lista_conta_posi_jogada_2 = []
        lista_conta_posi_jogada_1 = []
        while not (comp_2_venceu or comp_1_venceu):
            if not comp_2_venceu:
                Matriz_jogo = Jogada_aleatoria(Matriz_jogo, n, jog=1)
                comp_1_venceu = Jogador_1_venceu(Matriz_jogo, n)
            if not comp_1_venceu:
                lista_posi_2, lista_possibili_2, lista_jogadas_2, Matriz_jogo, conta_2, jog_feita_2 = Jogada_do_computador2(
                    lista_posi_2, lista_possibili_2, lista_jogadas_2, Matriz_jogo, n, chance)
                lista_conta_posi_jogada_2.append([conta_2, jog_feita_2])
                comp_2_venceu = Jogador_2_venceu(Matriz_jogo, n)
        lista_possibili = Adicionar_Inteligência(comp_2_venceu, lista_possibili_2, lista_conta_posi_jogada_2, index=index)
        if i % 100 == 0:
            print('Porcentagem do treinamento :', "%.2f" % (i / iterações * 100))
    print('Posições achadas no treinamento: ', len(lista_possibili_2))
    print('Tamanho do tabuleiro :', n)
    if jogador:
        print('Jogador 1 será treinado')
    else:
        print('Jogador 2 será treinado')
    print('Iterações de treino :', iterações)
    print('Parâmetro teto do treinamento :', chance)
    print('Parâmetro index do treinamento :', index)
    while True:
        Matriz_jogo = Matriz_Inicial(n)
        print_Matriz(Matriz_jogo, n)
        jog_1_venceu = False
        comp_2_venceu = False
        lista_conta_posi_jogada_2 = []

        while not (comp_2_venceu or jog_1_venceu):
            if not comp_2_venceu:
                Matriz_jogo = Jogada_do_jogador_1(Matriz_jogo, n)
                jog_1_venceu = Jogador_1_venceu(Matriz_jogo, n)
            if not jog_1_venceu:
                print("\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n")
                lista_posi_2, lista_possibili_2, lista_jogadas_2, Matriz_jogo, conta_2, jog_feita_2 = Jogada_do_computador2(
                    lista_posi_2, lista_possibili_2, lista_jogadas_2, Matriz_jogo, n, chance)
                lista_conta_posi_jogada_2.append([conta_2, jog_feita_2])
                print_Matriz(Matriz_jogo, n)
                comp_2_venceu = Jogador_2_venceu(Matriz_jogo, n)
        if jog_1_venceu:
            print("\n", "\n", "\n", "\n", "\n", "\n", "\n")
            print_Matriz(Matriz_jogo, n)
            print("\n", "\n")
            print("  JOGADOR 1 VENCEU   ")

        if comp_2_venceu:
            print("\n", "\n", "\n", "\n", "\n", "\n", "\n")
            print_Matriz(Matriz_jogo, n)
            print("\n", "\n")
            print("  COMPUTADOR VENCEU   ")
        time.sleep(2)
        lista_possibili_2 = Adicionar_Inteligência(comp_2_venceu, lista_possibili_2, lista_conta_posi_jogada_2,
                                                   index=index)

Raw Text