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
-
Sexy hot mature MILF Mrs. Claus try's anal for the first time and gets put on The Naughty List
26 min ago
-
iaaee
28 min ago
-
mokhaseum
31 min ago
-
Adult Telegram Channels
38 min ago
-
No Deposit Bonus
41 min ago
-
Teen Dildo Lover Scarlett Takes Off Her Clothes And Masturbates With Dildo!
56 min ago
-
https://www.facebook.com/MakersCBDGummies/
1 hour ago
-
DIRECTLINK NOADS ANDT
1 hour ago
-
Bocie smph mulus T
1 hour ago
-
New mega konten T
1 hour ago