Programmer le jeu Sudoku

A voir également:Programmer le jeu sudokuProgramme de jeu ✓ - Forum - Programmation Programmer un jeu d'echec en c - Forum - C Programme sur le jeu du solitaire. - Forum - Programmation Comment créer et programmer un jeu en flash ? ✓ - Forum - Programmation Programmer un jeu sans coder ✓ - Forum - Programmation

Bonjour,

Voici un exercice ou on demande de compléter le programme. J''ai commencé mais je suis bloqué. Quelqu'un(e) peut il m'aider svp?
On va programmer le jeu Sudoku (https://fr.wikipedia.org/wiki/Sudoku). Vous devez donc compléter le programme pour ce jeu. Une partie de programme vous est donnée dans deux fichiers: D4Q3.py et jeuSudoku.py (que vous devez compléter). Ne modifier pas les prototypes des fonctions. Vous devez implémenter les fonctions pour ce jeu. Un exemple d’exécution du jeu est donnéé à la fin de ce document.

Le programme principal contrôle le jeu (il est déjà donné). Au début un menu de 3 choix est affiché à l’utilisateur. Ensuite, il demande à l’utilisateur d’entrée son choix. On suppose que l’utilisateur va entrer exactement le bon choix (un choix entre 1 et 3) donc la validité du choix n’est pas vérifiée. Le choix 1 : il réinitialise la grille de Sudoku par la matrice donné dans le programme principal . Par la suite, le jeu commence en suivant les mêmes étapes que le choix 2. Le choix 2 : le jeu commence. Il affiche la grille à l’écran et puis demander à l’utilisateur d’entrer la case à jouer (il doit entrer le numéro de la ligne, de la colonne et le nombre qu’il veut ajouter). Si la case à jouer est correcte (une case valide), alors il faut afficher le message Bravo !!. Sinon, le message Echec sera affiché. Si la case est déjà remplie ou si la grille de Sudoku est pleine, il affiche le message approprié à l’utilisateur. Le choix 3 : Le jeu s’arrête. Le message Au revoir ! est affiché.

Afin de bien contrôler le jeu, il faut implémenter les fonctions suivantes : AfficherGrille() : permet d’afficher une grille Sudoku sous format d’une matrice 9x9. VerifierLigne() : permet de vérifier si le nombre à ajouter existe déjà sur la ligne. VerifierCol() : permet de vérifier si le nombre à ajouter existe déjà sur la colonne. VerifierSousGrille() : permet de vérifier si le nombre à ajouter existe déjà sur la sous grille où l’ajout sera fait. VerifierCase() : vérifier si une case est valide c.-à-d. le nombre à ajouter n’existe pas ni sur la ligne, ni sur la colonne, ni sur la sous-grille. VerifierGagner() : vérifier si la grille est complète c.-à-d. il n’y a aucun case nul. Dans ce cas, la fonction retourne True. Jouer() : ajouter une case dans la grille de Sudoku seulement si la case est valide. Notez que: 1) Après chaque choix de menu, on réaffiche la grille après modification (s’il en y a) et le menu avec les options et redemande à l’utilisateur d’entrer de nouveau un entre choix jusqu’à que l’utilisateur choisi l’option 3 ou la grille est complétée. 2) La case à ajouter est demandé à l’utilisateur avec input(). On ne vérifie pas la validité de ces entrés (on suppose que l’utilisateur il va entrer toujours un nombre entre 1 et 9 et un numéro de ligne et numéro de colonne entre 0 et 8). 3) Les fonctions verifierLigne(), verifierCol(), verifierSousGrille() retournent True si le nombre n’existe pas sur la ligne ou la colonne ou la sous-grille.
Annexe – exemple jeu

Menu: 1- Commencer un nouveau jeu. 2- Continuer le jeu. 3- Quitter le jeu.

SVP entrez votre choix (1, 2 ou 3): 1
5 3 8 6 9 1 0 4 7 7 4 6 5 3 2 8 1 9 1 9 2 7 8 4 3 5 6 8 7 1 2 6 3 4 9 5 3 2 9 4 5 7 1 6 8 4 6 5 9 1 8 7 2 3 6 1 4 3 7 9 5 8 2 9 8 3 1 2 5 6 7 4 2 5 0 8 4 6 9 3 1
Entrez votre choix de case ligne: 0
Entrez votre choix de case col: 6
Entrez votre choix de case num: 2
Bravo!!
5 3 8 6 9 1 2 4 7 7 4 6 5 3 2 8 1 9 1 9 2 7 8 4 3 5 6 8 7 1 2 6 3 4 9 5 3 2 9 4 5 7 1 6 8 4 6 5 9 1 8 7 2 3 6 1 4 3 7 9 5 8 2 9 8 3 1 2 5 6 7 4 2 5 0 8 4 6 9 3 1
Menu: 1- Commencer un nouveau jeu. 2- Continuer le jeu. 3- Quitter le jeu. SVP entrez votre choix (1, 2 ou 3): 2
5 3 8 6 9 1 2 4 7 7 4 6 5 3 2 8 1 9 1 9 2 7 8 4 3 5 6 8 7 1 2 6 3 4 9 5 3 2 9 4 5 7 1 6 8 4 6 5 9 1 8 7 2 3 6 1 4 3 7 9 5 8 2 9 8 3 1 2 5 6 7 4 2 5 0 8 4 6 9 3 1 Entrez votre choix de case ligne: 1
Entrez votre choix de case col: 2
Entrez votre choix de case num: 7
Case déjà remplie !!
Voici le code en question:

from jeuSudoku import *  def afficherGrille(grille):     '''     (list) -> None     Affiche le grille de jeu Sudoku     Preconditions: grille est une reference a une matrice 9x9 qui contient déja des nombres de 1 à 9     '''     print("   ", end="")     col = 0     while col < len(grille):       print(col, end="  ")       col += 1     print()     row = 0     while row < len(grille):        print(row, end="")        col = 0        while col < len(grille[row]):          print(" ", grille[row][col], end="")          col += 1        print()        row += 1  def jouer(grille, row, col, num):     '''     (list, int, int, int) -> Bool     Jouer une étape de jeu Sudoku     Preconditions: grille est une réference sur une liste de 9x9 contient seulement des nombres     grille est modifié (un element est ajouté dans la grille) si la case est valide est correcte.     '''          # A COMPLETER      # Créer le tableau de jeu (9 x 9) grille = [[5, 3, 8, 6, 9, 1, 0, 4, 7],           [7, 4, 6, 0, 3, 2, 8, 1, 9],           [1, 9, 2, 0, 8, 4, 3, 5, 6],           [8, 7, 1, 2, 6, 3, 4, 9, 5],           [3, 2, 9, 4, 5, 7, 1, 6, 8],           [4, 6, 5, 9, 1, 8, 7, 2, 3],           [0, 0, 4, 3, 7, 9, 5, 8, 2],           [9, 8, 3, 1, 0, 5, 6, 7, 4],           [2, 5, 0, 8, 4, 6, 9, 3, 1]]  # la seule matrice utilisé dans le programme. print("Menu: 1- Commencer un nouveau jeu.") print("     ", "2- Continuer le jeu.") print("     ", "3- Quitter le jeu.") choix = int(input("SVP entrez votre choix: 1, 2 ou 3: ")) while choix < 3 and choix > 0:       if choix == 1:           # Créer le tableau de jeu (9 x 9)           grille = [[5, 3, 8, 6, 9, 1, 0, 4, 7],                     [7, 4, 6, 5, 3, 2, 8, 1, 9],                     [1, 9, 2, 7, 8, 4, 3, 5, 6],                     [8, 7, 1, 2, 6, 3, 4, 9, 5],                     [3, 2, 9, 4, 5, 7, 1, 6, 8],                     [4, 6, 5, 9, 1, 8, 7, 2, 3],                     [6, 1, 4, 3, 7, 9, 5, 8, 2],                     [9, 8, 3, 1, 2, 5, 6, 7, 4],                     [2, 5, 0, 8, 4, 6, 9, 3, 1]]  # la seule matrice utilisé dans le programme.       afficherGrille(grille)       row = int(input("entrez votre choix de case ligne "))       col = int(input("entrez votre choix de case col "))       num = int(input("entrez votre choix de case num "))       if grille[row][col] == 0:           ajout = jouer(grille, row, col, num)           if ajout == True:               print("Bravo!!")           else:               print("Echec :(")       else:           print("Case deja rempli")       afficherGrille(grille)       if verifierGagner(grille) == True:           print("Bravo!! Vous avez gagne")           choix = -1       else:          print("Menu: 1- Commencer un nouveau jeu.")          print("     ", "2- Continuer le jeu.")          print("     ", "3- Quitter le jeu.")          choix = int(input("SVP entrez votre choix: 1, 2 ou 3: ")) if choix==3:     print("Au revoir")  def verifierLigne(grille, row, num):     '''         (list, int, int) -> Bool         Vérifier si la case à ajouter n'existe pas sur la ligne.         Preconditions: grille est une reference a une matrice 9x9 qui contient déja des nombres de 1 à 9     '''     for i in range(0,9):         if(grille[row][i]==num):             return False         break     return true  def verifierCol(grille, col, num):     '''             (list, int, int) -> Bool             Vérifier si la case à ajouter n'existe pas sur la colonne.             Preconditions: grille est une reference a une matrice 9x9 qui contient déja des nombres de 1 à 9     '''     for i in range(0,9):         if(grille[i][col]==num):             return False         break     return True  def verifierSousGrille(grille, row, col, num):     '''             (list, int, int) -> Bool             Vérifier si la case à ajouter n'existe pas sur la sous-grille.             Preconditions: grille est une reference a une matrice 9x9 qui contient déja des nombres de 1 à 9     '''      # A COMPLETER               def verifierGagner(grille):     '''(list) ->  bool     * Preconditions: grille est une reference a une matrice 9x9 qui contient de nombres de 1 à 9     * Verifie si la grille est completement remplie.     '''         # A COMPLETER    def verifierValide(grille, row, col, num):    ''' (list, int, int, int) ->  bool    * verifie si le nombre proposé est bon sur la ligne et colonne et la sous-grille donné en parametre.    * Preconditions: tab est une reference a une matrice 9 x 9 qui contient des chiffres entre 1 et 9    '''        # A COMPLETER       






Configuration: Windows / Edge 18.17763

Forum

A voir également:Programmer le jeu sudokuProgramme de jeu ✓ - Forum - Programmation Programmer un jeu d'echec en c - Forum - C Programme sur le jeu du solitaire. - Forum - Programmation Comment créer et programmer un jeu en flash ? ✓ - Forum - Programmation Programmer un jeu sans coder ✓ - Forum - Programmation

Web: www.shapebootstrap.net

1 réponse

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

bonjour,
cela ne t'aidera pas si nous faisons l'exercice à ta place.
as-tu une question?

Reply
réponses:
  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed