Mini projet de programmation en python

Consignes de rendu

Il faut déposer sur pronote, pour le travail «exercice python» du 21 novembre, un dossier compressé au format zip. Le dossier doit contenir les deux fichiers «interface.py» et «fonctions.py» complétés et fonctionnels.

Présentation

Cet exercice consiste en la réalisation d'un jeu de taquin en mode texte, c'est à dire sans interface graphique élaborée mais jouable depuis la console python. Les seules interactions avec l'utilisateur se font par l'affichage et la saisie de chaînes de caractères.

La case vide, déplaçable, sera toujours le zéro, et sa position initiale est en haut à gauche.

Fichiers de départ

Mise en œuvre du fichier fonctions.py

Les fonctions sont décrites pas leur docstring dans le fichier fourni. Voici un exemple de mise en œuvre ci-dessous.

>>> plateau = gen_cases (4,4)
>>> plateau
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]
>>> trouve_zéro(plateau)
(0, 0)
>>> trouve_zéro([[1,1,1],[1,5,0]])
(1, 2)
>>> candidats(plateau)
[(0, 1), (1, 0)]
>>> candidats([[1,1,1],[1,5,0]])
[(0, 2), (1, 1)]
>>> plateau2 = échange_zéro(plateau,(0,1))
>>> candidats(plateau2)
[(0, 0), (0, 2), (1, 1)]
>>> plateau3 = échange_zéro(plateau2,(1,1))
>>> plateau3
[[1, 5, 2, 3], [4, 0, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]
>>> plateau2
[[1, 0, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]
>>> mélanger(plateau, 10)
[[4, 1, 2, 3], [5, 6, 10, 7], [8, 9, 0, 11], [12, 13, 14, 15]]
>>> victoire(plateau2)
False
>>> victoire(plateau)
True
>>> 

Mise en œuvre du ficher interface.py

>>> plateau = fonctions.gen_cases(4,4)
>>> affiche(plateau)
---------------------
|  0 |  1 |  2 |  3 |
---------------------
|  4 |  5 |  6 |  7 |
---------------------
|  8 |  9 | 10 | 11 |
---------------------
| 12 | 13 | 14 | 15 |
---------------------
>>> plateau = mouvement(plateau)
Déplacements possibles : 
1 4 
Votre choix ? 4
>>> affiche( plateau)
---------------------
|  4 |  1 |  2 |  3 |
---------------------
|  0 |  5 |  6 |  7 |
---------------------
|  8 |  9 | 10 | 11 |
---------------------
| 12 | 13 | 14 | 15 |
---------------------
>>> 
    

Un exemple de phase de partie

On a exécuté le jeu paramétré pour un mélange en 3 coups.

---------------------
|  1 |  2 |  3 |  0 |
---------------------
|  4 |  5 |  6 |  7 |
---------------------
|  8 |  9 | 10 | 11 |
---------------------
| 12 | 13 | 14 | 15 |
---------------------
Déplacements possibles : 
3 7 
Votre choix ? 3
---------------------
|  1 |  2 |  0 |  3 |
---------------------
|  4 |  5 |  6 |  7 |
---------------------
|  8 |  9 | 10 | 11 |
---------------------
| 12 | 13 | 14 | 15 |
---------------------
Déplacements possibles : 
2 3 6 
Votre choix ? 2
---------------------
|  1 |  0 |  2 |  3 |
---------------------
|  4 |  5 |  6 |  7 |
---------------------
|  8 |  9 | 10 | 11 |
---------------------
| 12 | 13 | 14 | 15 |
---------------------
Déplacements possibles : 
1 2 5 
Votre choix ? 1
---------------------
|  0 |  1 |  2 |  3 |
---------------------
|  4 |  5 |  6 |  7 |
---------------------
|  8 |  9 | 10 | 11 |
---------------------
| 12 | 13 | 14 | 15 |
---------------------
Gagné en 3 coups.