J'essayais de rédiger un résolveur de puzzle de Sudoku, et jusqu'à présent, je suis bloqué pour essayer de l'afficher. Voici mon code à ce jour:Le résolveur de puzzle sudoku Python n'affiche pas correctement le puzzle
class Cell:
'''A cell for the soduku game.'''
def __init__(self):
#This is our constructor
self.__done = False #We are not finished at the start
self.__answer = (1,2,3,4,5,6,7,8,9) #Here is the tuple containing all of our possibilities
self.__setnum = 8 #This will be used later when we set the number.
def __str__(self):
'''This formats what the cell returns.'''
answer = 'This cell can be: '
answer += str(self.__answer) #This pulls our answer from our tuple
return answer
def get_possible(self):
'''This tells us what our possibilities exist.'''
answer =()
return self.__answer
def is_done(self):
'''Does a simple check on a variable to determine if we are done.'''
return self.__done
def remove(self, number):
'''Removes a possibility from the possibility tuple.'''
if number == 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9: #Checks if we have a valid answer
temp = list(self.__answer) #Here is the secret: We change the tuple to a list, which we can easily modify, and than turn it back.
temp.remove(number)
self.__answer = tuple(temp)
def set_number(self, number):
'''Removes all but one possibility from the possibility tuple. Also sets "__done" to true.'''
answer = 8
for num in self.__answer:
if num == number:
answer = number #Checks if the number is in the tuple, and than sets that value as the tuple, which becomes an integer.
self.__answer = answer
self.__done = True
return self.__answer
qui est pour les cellules, et voici le code de la grille:
class Grid:
'''The grid for the soduku game.'''
def __init__(self, puzzle):
'''Constructs the soduku puzzle from the file.'''
self.__file = open(puzzle)
self.__puzzle = ''
self.__template = ' | | \n | | \n | | \n | | \n | | \n | | \n | | \n | | \n | | \n'
for char in self.__file:
if char == '.':
self.__puzzle += ' '
else:
self.__puzzle += char
count = 0
self.__template_list = list(self.__template)
for char in self.__puzzle:
if char != '|':
if char == '.' or ' ':
self.__template_list[count] = ' '
else:
self.__template_list[count] = char
self.__answer = ''
for char in self.__template_list:
self.__answer += char
self.__file.close()
def __str__(self):
'''Prints the soduku puzzle nicely.'''
return self.__answer
Lorsque je tente de l'imprimer, je reçois deux lignes verticales de tuyaux (|). Quelqu'un peut-il me dire ce que je fais mal?
Mais il y a deux tuyaux entre chaque numéro inf votre 'template'? – kirelagin
Pourriez-vous, s'il vous plaît, montrer une sortie. – kirelagin
s'il vous plaît ne pas utiliser «__» devant tout, sauf si vous _need_ mangling –