• Aucun résultat trouvé

7 8 9 M M M 4 5 6 M M M 1 2 3 M M M

N/A
N/A
Protected

Academic year: 2022

Partager "7 8 9 M M M 4 5 6 M M M 1 2 3 M M M"

Copied!
2
0
0
En savoir plus ( Page)

Texte intégral

(1)

DUT Info Structures de donn´ees et algorithmes fondamentaux 2019–2020 TP 3 - Sudoku

Unegrille de Sudokuest une matrice `a 9 lignes et 9 colonnes, dont certaines cases contiennent un entier entre 1 et 9. Le but du jeu est de trouver une solution valide, c’est-`a-dire de remplir la grille donn´ee de mani`ere `a ce que chaque ligne, chaque colonne et chacune des sous-matrices M1, M2, . . ., M9 (voir illustration ci-dessous) contienne les nombres de 1 `a 9 exactement une fois.

M

1

M

2

M

3

M

4

M

5

M

6

M

7

M

8

M

9

Des exemples de grilles remplies (valides et non valides) sont donn´es plus bas. L’objectif de ce TP est de compl´eter le programme qui vous est fourni (sudoku-init.py sur la page du cours) afin de g´en´erer et d’afficher des puzzles ainsi que des grilles valides ou non et d’ˆetre capable de les v´erifier. Les parties que vous avez le droit de modifier sont clairement indiqu´ees dans le programme. Vous pouvez rajouter autant de fonctions auxiliaires que vous voulez, mais il est imp´eratif de conserver le nom et le format des fonctions qui existent d´ej`a dans le fichier.

1. Compl´etez la fonction matrice_aleatoire() pour qu’elle renvoie une matrice 9 × 9 d’entiers entre 1 et 9, choisis au hasard.

2. Compl´etez la fonctionverifier_matrice(M), qui prend en param`etre une matrice 9×9 d’entiers, afin que cette fonction renvoie True si la matrice est une solution valide et False sinon, sans utiliser d’autres types de structures que les listes. Remarquez que les v´erifications `a effectuer sont assez r´ep´etitives; il est donc plus que recommand´e de cr´eer une ou des fonctions auxiliaires pour vous faciliter la tˆache et pour clarifier le code.

Apr`es avoir fini les deux premi`eres questions, l’affichage du programme apr`es avoir cliqu´e les boutons “Remplir (al´eatoire)” puis “V´erifier” ressemblera `a ceci:

3. La fonction grille_valide_aleatoire()renvoie une grille Sudoku valide; mais comme vous pouvez le voir, cette grille n’est pas tr`es al´eatoire. Modifiez la fonction de mani`ere

`

a renvoyer d’autres solutions valides plus vari´ees. Pour ce faire, on peut “renommer” les

´el´ements de la matrice en appliquant un d´ecalage modulaire: par exemple, on pourrait remplacerM[i][j] par(M[i][j] + 5) % 9 + 1.

Page 1 / 2

(2)

DUT Info Structures de donn´ees et algorithmes fondamentaux 2019–2020 Apr`es avoir fini cette question, l’affichage du programme apr`es avoir cliqu´e les boutons

“Remplir (valide)” puis “V´erifier” ressemblera `a ceci:

4. Compl´etez la fonction generer_puzzle() pour qu’elle renvoie une grille al´eatoire par- tiellement remplie. Pour ce faire, on peut partir d’une grille remplie valide, et effacer des nombres au hasard (il faut ´evidemment qu’il en reste suffisamment; on en laisse en g´en´eral entre 17 et 25). Pour mat´erialiser les cases vides, utilisez 0.

Apr`es avoir fini cette question, l’affichage du programme apr`es avoir cliqu´e le bouton

“Puzzle” ressemblera `a ceci:

5. On peut encore plus varier les grilles en alternant la transformation de la question 3 et des sym´etries par rapport aux diagonales, `a la ligne du milieu, ou `a la colonne du milieu de la matrice. Modifiez la fonction grille_valide_aleatoire() pour qu’elle renvoie des grilles al´eatoires plus vari´ees sur base de ce principe (le nombre de transformations `a appliquer peut ´egalement ˆetre al´eatoire).

Page 2 / 2

Références

Documents relatifs

Le premier qui donne le produit des deux nombres représentés par les doigts levés marque un point (exemple : si un élève montre 5 doigts et l'autre 7, le premier qui dit 35 a

Sachant qu’un match dure deux mi-temps de trois quarts dure deux mi-temps de trois quarts d’heure, combien de temps Zlatini a-t-il joué.. LE CLASSEMENT

La grille ci-contre a l’allure d’une grille de sudoku dans laquelle l’objectif est de compléter chacun des neuf carrés 3x3 ainsi que chaque ligne et chaque colonne du carré 9x9

[r]

[r]

- Puis tu verras que pour d’autres lignes, colonnes et carrés de 9 cases, c’est

- Cela te permet alors de compléter le carré à gauche au milieu, puisqu’il ne manque plus

Ùn c’hè chè una regula : ogni sciffru ùn ci pò esse chè una volta nentr’à una culonna, nentr’à una linea è nentr’à un quadrettu

Une seule règle prévaut : chaque chiffre ne doit figurer qu’une seule fois dans la même colonne, ligne et région (carré 3X3). Complétez

In this paper, we investigate the mean bit rate obtained by a data transfer when elastic traffic and unresponsive streaming flows are multiplexed on a same transmission link.. Along

[r]

[r]

En déduire

(T5) Missions Tests camionnette et trailer microbiologie sur les sites SOERE et lors de la mise en place du réseau « Manipulation de la matière Organique ». (T5-T6) Achat

[r]

Objectif sectoriel 1.2 L’accès immédiat au logement digne et décent des personnes déplacées internes ou retournées de moins de 6 mois en familles d’accueil, en centre urbain,

Nous considérons un système de files d’attente M/M/1 avec rappels non fiables tels que le serveur sujet à des pannes actives, de type de clients impatients, dont lequel les

When R is semiperfect and strongly π-regular, we show that there exists an integer m > 0 such that, for any integer n > 0, each (n, m)-pure exact sequence of right modules is

La société RIBOULT travaille sur commande. Les commandes une fois terminées sont livrées et facturées. Le système de contrôle de gestion vous fournit les informations suivantes :. -

Unité de recherche INRIA Rennes, Irisa, Campus universitaire de Beaulieu, 35042 RENNES Cedex Unité de recherche INRIA Rhône-Alpes, 655, avenue de l’Europe, 38330 MONTBONNOT ST

Tout au plus pouvons - nous reconnaître à nos côtés un compagnon ou une compagne spirituels, reconnaître les influences d'un directeur spirituel ou d'un gourou,

son amour interdit en même temps qu'une série de proverbes connus; «Big- bang» a une tendance à faire des retours sur le texte, à la manière d'Alain Robbe-Grillet

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des