Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- programa = 1
- cont2 = 0
- while (programa == 1):
- grade = [[" " for x in range(9)] for y in range(9)]
- cont = 0
- verificador = 0
- dic = {"A":0,"B":1,"C":2,"D":3,"E":4,"F":5,"G":6,"H":7,"I":8}
- padrão = True
- pistas = open('pistas.txt')
- for line in pistas: #Trata as pistas e as insere na matriz.
- cont2 +=1
- COL1 = line[:1]
- coluna = int(ord(COL1) - 65) #Converte a Letra referente a matriz em número.
- LIN1 = line[2:3]
- linha = int(LIN1) -1
- NUM1 = line[4:5]
- numero = int(NUM1)
- grade[linha][coluna] = numero
- def Verificador():
- for k in range(9):
- if k != linha: #verifica as linhas
- if grade[linha][coluna] == grade[k][coluna]:
- return 1
- if k != coluna: #verifica as colunas
- if grade[linha][coluna] == grade[linha][k]:
- return 1
- #verificar cada mini-grade 3x3
- verificador = Verificador()
- def verificador_qnt_pistas():
- print("Construindo.")
- def sudoku(): #exibe a grade do sudoku já formatada e com as pistas.
- colunasletras = " A B C D E F G H I "
- linhaHorizontal1 = " ++---+---+---++---+---+---++---+---+---++ "
- linhaHorizontal2 = " ++===+===+===++===+===+===++===+===+===++ "
- print (colunasletras)
- for i in range(0,9):
- if i == 3 or i == 6:
- print (linhaHorizontal2)
- else:
- print(linhaHorizontal1)
- for j in range(0,9):
- if (j == 3) or (j == 6):
- print ("|| {} |".format(grade[i][j]), end = " ")
- elif (j == 0):
- print (i+1,"|| {} |".format(grade[i][j]), end = " ")
- elif (j == 8):
- print("| {} ||".format(grade[i][j]),i+1, end = " ")
- elif j == 2 or j == 5:
- print("| {}".format(grade[i][j]), end = " ")
- else:
- print("{}".format(grade[i][j]), end = " ")
- print()
- print(linhaHorizontal1)
- print(colunasletras)
- def Tratamento_de_Jogada(): #Falta um Verificador que funcione
- dic = {"A":0,"B":1,"C":2,"D":3,"E":4,"F":5,"G":6,"H":7,"I":8}
- padrão = True
- while padrão:
- jogadas = input("Insira sua Jogada: ")
- jogadas = jogadas.split()
- jogadas = "".join(jogadas)
- jogadas = jogadas.upper()
- if jogadas[0].isalpha() and jogadas[0] in dic:
- COL1 = jogadas[:1]
- coluna = int(ord(COL1) - 65)
- if jogadas[1] != ',' or jogadas[3] != ':':
- print ('Fora do padrão de jogadas')
- padrão = False
- if jogadas[2].isdigit():
- if int(jogadas[2]) > 0 and int(jogadas[2]) < 10:
- linha = int(jogadas[2]) - 1
- else:
- print('Fora do padrão de jogadas')
- padrão = False
- else:
- print('Fora de padrão de jogadas')
- padrão = False
- if jogadas[4].isdigit() and len(jogadas) == 5:
- if int(jogadas[4]) > 0 and int(jogadas[4]) < 10:
- numero = int(jogadas[4])
- grade[linha][coluna] = numero
- sudoku()
- for k in range(9):#verificador
- if k != linha: #verifica as linhas
- if grade[linha][coluna] == grade[k][coluna]:
- print ("JOGADA INVÁLIDA: Entrada feria as regras do programa!")
- if k != coluna: #verifica as colunas
- if grade[linha][coluna] == grade[linha][k]:
- print ("JOGADA INVÁLIDA: Entrada feria as regras do programa!")
- else:
- print('Fora do padrão jogadas')
- padrão = False
- else:
- print('Fora do padrão de jogadas')
- padrão = False
- else:
- print('Fora do padrão de jogadas')
- padrão = False
- #------Algoritmo Principal------
- print ("""
- Sudoku - Trabalho Final - Versão 0.4 - Data de ínicio: 12/06/2018""")
- print ("""Seja Bem Vindo ao Sudoku!
- Selecione o Modo de Jogo:
- (1) para selecionar o MODO INTERATIVO
- (2) para selecionar o MODO BATCH""")
- MENU= int(input("Selecione o número referente a opção desejada: "))
- if MENU == 1:
- print(">>>MODO INTERATIVO: ")
- Verificador()
- if cont >0 or verificador == 1 or cont2 > 81 or cont2 == 0:
- sudoku()
- print ("JOGO INVÁLIDO: Configuracao de dicas inválida, tente novamente.")
- else:
- sudoku()
- Tratamento_de_Jogada()
- Verificador()
- if verificador == 1:
- print("JOGO INVÁLIDO: Entrada fere as regras do programa!")
- else:
- continue
- elif MENU == 2:
- print(">>>MODO BATCH: ")
- VerificadorPistas()
- if cont >0 or verificador == 1:
- entradas = open('entradas.txt')
- for lines in entradas:
- COL1 = line[:1]
- coluna = int(ord(COL1) - 65) #Converte a Letra referente a matriz em número.
- LIN1 = line[2:3]
- linha = int(LIN1) -1
- NUM1 = line[4:5]
- numero = int(NUM1)
- grade[linha][coluna] = numero
- else:
- programa = int(input("""ESCOLHA UMA OPÇÃO CORRETA!
- Pressione {} para reiniciar o programa: """"".format('1')))
- #depois do sudoku ser preenchido ou ouver erro:
- #programa = int(input("""Obrigado por usar!
- #Pressione {} para reiniciar o programa: """"".format('1')))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement