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.
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.
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 >>>
>>> 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 | --------------------- >>>
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.