Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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")
- print("\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n")
- return n
- ## RETORNA UM VALOR DE N INTEIRO (3,4,5,6,7,8)
- 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
- return matriz_inicial
- ## RETORNA MATRIZ INICIAL COM N COLUNAS E N LINHAS
- 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("\n","")
- count_Y+=1
- print()
- ## IMPRIME A MATRIZ COM N LINHAS E N COLUNAS
- 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
- ## RETORNA UM VALOR TRUE SE A JOGADA DO JOGADOR 1 FOR POSSÍVEL, E FALSE SE NÃO FOR POSSÍVEL
- def Jogada_do_jogador_1(Matriz,N):
- print()
- print("VEZ DO JOGADOR 1 ----------------------------")
- print()
- CordX =""
- CordY=""
- Movi=""
- jogada_possivel = False
- while not jogada_possivel:
- print("Insira um valor de 1 a",N, end='')
- CordX = input(" para a cordenada X :")
- print("Insira um valor de 1 a", N , end='')
- CordY = input(" para a cordenada Y :")
- Movi = input("Movimento (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 ")
- return Matriz
- ## EXECUTA A ROTINA DA JOGADA DO JOGADOR 1 E RETORNA A MATRIZ FINAL
- 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
- ## RETORNA UM VALOR TRUE SE A JOGADA DO JOGADOR FOR POSSÍVEL, E FALSE SE NÃO FOR POSSÍVEL
- def Jogada_do_jogador_2(Matriz,N):
- print()
- print("VEZ DO JOGADOR 2 ----------------------------")
- print()
- CordX =""
- CordY=""
- Movi=""
- jogada_possivel = False
- while not jogada_possivel:
- print("Insira um valor de 1 a",N,end='')
- CordX = input(" para a cordenada X :")
- print("Insira um valor de 1 a", N ,end='')
- CordY = input(" para a cordenada Y :")
- Movi = input("Movimento (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 ")
- return Matriz
- ## EXECUTA A ROTINA DA JOGADA DO JOGADOR 2 E RETORNA A MATRIZ FINAL
- 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
- ## VERIFICA SE O JOGADOR 1 VENCEU E RETORNA TRUE SE VENCEU, OU FALSE CASO NÃO 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
- ## VERIFICA SE O JOGADOR 2 VENCEU E RETORNA TRUE SE VENCEU, OU FALSE CASO NÃO VENCEU
- """"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""
- n = Define_N() ## DEFINE O TAMANHO DA MATRIZ, NO CASO É n
- Matriz_Jogo = Matriz_Inicial(n) ## A MATRIZ DO JOGO RECEBE A MATRIZ INICIAL
- print_Matriz(Matriz_Jogo,n) ## IMPRIME A MATRIZ DO JOGO
- jog_1_venceu = False ## TRUE: JOGADOR 1 VENCEU; FALSE: JOGADOR 1 NÃO VENCEU
- jog_2_venceu = False ## TRUE: JOGADOR 2 VENCEU; FALSE: JOGADOR 2 NÃO VENCEU
- while not (jog_2_venceu or jog_1_venceu):
- if not jog_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:
- Matriz_Jogo = Jogada_do_jogador_2(Matriz_Jogo,n)
- jog_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 jog_2_venceu:
- print("\n","\n","\n","\n","\n","\n","\n")
- print_Matriz(Matriz_Jogo,n)
- print("\n","\n")
- print(" JOGADOR 2 VENCEU ")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement