我想寫一個數獨拼圖求解器,到目前爲止,我一直試圖讓它顯示拼圖。這是我到目前爲止的代碼:Python數獨拼圖求解器不能正確顯示拼圖
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
這是對細胞,這裏是網格代碼:
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
當我嘗試打印它,我得到管道的兩條垂直線(|)。有人能告訴我我做錯了什麼嗎?
但是在你的'template'每個數字之間有兩個管道? – kirelagin
請問你能否顯示一些輸出。 – kirelagin
請不要在所有內容前使用'__',除非你需要修改 –