J'ai une classe nommée Board
qui agit comme une superclasse. Il s'agit essentiellement d'un tableau de Sudoku généré aléatoirement avec 81 numéros placés correctement par les règles."module .__ init __() prend au plus 2 arguments (3 donnés)" lors de la création de l'instance d'une sous-classe
Puis j'ai défini une sous-classe nommée normalSudoku
où elle sera initialisée avec un paramètre "difficulty" (une chaîne) où elle décidera combien d'entrées vides apparaîtront sur le Sudoku.
Lorsque je créé une instance de normalSudoku et d'essayer de l'imprimer pour voir si cela fonctionne, l'erreur suivante apparaît sur:
TypeError: module.__init__() takes at most 2 arguments (3 given)
Je ne sais pas ce que je fait de mal et je suis un peu confus sur l'utilisation de self
et l'initialisation d'objet en python.
Mon Board
Classe:
class Board(object):
def __init__(self):
self.sudoku = self.__create__()
def __create__(self):
#generateion of board goes here
#it will return a 9x9 2d-list
Mon normalSudoku
Classe:
import Board
import random
class normalSudoku(Board):
def __init__(self,difficulties):
Board.Board.__init__(self)
self.Create_Empty_Entries(self,difficulties)
def Create_Empty_Entries(self, difficulties):
numbers = list(range(0,9))
if difficulties == "Easy":
for x in range(25):
a = random.choice(numbers)
b = random.choice(numbers)
self.sudoku[a][b] = None
elif difficulties == "Medium":
for x in range(35):
a = random.choice(numbers)
b = random.choice(numbers)
self.sudoku[a][b] = None
elif difficulties == "Hard":
for x in range(45):
a = random.choice(numbers)
b = random.choice(numbers)
self.sudoku[a][b] = None
elif difficulties == "Expert":
for x in range(65):
a = random.choice(numbers)
b = random.choice(numbers)
self.sudoku[a][b] = None
else:
print("The Level of Difficulty you chose does not exist.")
Merci beaucoup pour souligner mes erreurs! Votre réponse est vraiment utile. J'ai corrigé toutes les erreurs maintenant et j'ai mieux compris la structure des classes en python. :) –