Mini-projets – partie 04

Vous trouverez ici plusieurs mini-projets.

Vous devez effectué un programme python par mini-projet.

Avant de commencer chaque mini-projet, réfléchissez à l’architecture de votre programme (programme principal, fonctions, variables, …)


1/ Tirage de l’EuroMillion

Ecrire une fonction euro() qui retourne un tuple contenant deux listes correspondant à un tirage de l’EuroMillion. Une liste correspondant aux boules du tirage et une liste correspondant aux numéros étoiles.

Pour l’EuroMillion, il y a 50 boules au tirage et 12 numéros étoiles.

Dans un tirage il ne peut évidemment pas se trouver 2 fois la même boule ou le même numéro étoile.

Vous utiliserez la bibliothèque random.

Sur la console voici un exemple d’utilisation de la fonction avec le résultat à obtenir après l’avoir appelé :

>>> euro()
([2, 10, 11, 24, 46], [3, 7])

Dans le programme principal, écrire un code permettant d’appeler la fonction euro() et d’afficher son retour de la manière suivante :

tirage : [20, 28, 33, 35, 43] numéro chance : [10, 12]

2/ Gestion de Bibliothèque

Objectif : Créer un programme en console qui gère les livres d’une bibliothèque. L’utilisateur peut ajouter des livres, afficher la liste des livres disponibles et en prêter un au hasard.

  • Ajouter un livre : Demander à l’utilisateur le titre et l’auteur, puis ajouter le livre à la bibliothèque.
  • Afficher les livres disponibles : Lister les livres non prêtés.
  • Prêter un livre au hasard : Utiliser random.choice() pour sélectionner un livre non prêté et changer son statut.
  • Retourner un livre : Marquer un livre prêté comme disponible.

Initialiser la bibliothèque qui sera représentée par une liste de dictionnaire. Un dictionnaire représente un livre et les clés des dictionnaires seront « titre », « auteur » et « disponibilité ».

Créer des fonctions pour chaque fonctionnalité.

Créer un menu pour que l’utilisateur interagisse avec le programme.

Menu de la Bibliothèque
1. Ajouter un livre
2. Afficher les livres disponibles
3. Prêter un livre au hasard
4. Retourner un livre
5. Quitter
Choisissez une option : 1
Entrez le titre du livre : Zai
Entrez l'auteur du livre : Fab
Le livre 'Zai' a été ajouté.

Menu de la Bibliothèque
1. Ajouter un livre
2. Afficher les livres disponibles
3. Prêter un livre au hasard
4. Retourner un livre
5. Quitter
Choisissez une option : 2
Zai de Fab - Disponible

Menu de la Bibliothèque
1. Ajouter un livre
2. Afficher les livres disponibles
3. Prêter un livre au hasard
4. Retourner un livre
5. Quitter
Choisissez une option : 3
Vous avez emprunté 'Zai' de Fab.

Menu de la Bibliothèque
1. Ajouter un livre
2. Afficher les livres disponibles
3. Prêter un livre au hasard
4. Retourner un livre
5. Quitter
Choisissez une option : 4
Entrez le titre du livre à retourner : Fab
Ce livre n'est pas en prêt ou n'existe pas.

Menu de la Bibliothèque
1. Ajouter un livre
2. Afficher les livres disponibles
3. Prêter un livre au hasard
4. Retourner un livre
5. Quitter
Choisissez une option : 4
Entrez le titre du livre à retourner : Zai
Le livre 'Zai' a été retourné.

Menu de la Bibliothèque
1. Ajouter un livre
2. Afficher les livres disponibles
3. Prêter un livre au hasard
4. Retourner un livre
5. Quitter
Choisissez une option : 5
Fermeture du programme.

3/ Memory

Pour ceux qui ne connaissent pas le fameux jeu du Mémory en voici un exemple sur ce lien.

Pour cet exercice le but est de créer des grilles de Mémory. Pour créer ces grilles nous utiliserons des listes et nous remplacerons les images par des nombres.

Ecrire une fonction memory_1D() retournant une liste. Cette liste doit s’apparenter à une grille de Mémory sur une seule ligne. La liste devra contenir deux chiffres 1, deux chiffres 2, deux chiffres 3, deux chiffres 4 et deux chiffres 5 disposés aléatoirement.

Note : si vous avez besoin de mélanger une liste vous pouvez utiliser la méthode shuffle de la bibliothèque random. l’instruction shuffle(l) retournera la liste l avec ces éléments mélangés aléatoirement.

La construction de liste devra se faire par compréhension.

Sur la console voici un exemple d’utilisation de la fonction avec le résultat à obtenir après l’avoir appelé :

>>> memory_1D()
[2, 1, 3, 3, 5, 2, 4, 1, 5, 4]

Ecrire une fonction memory_1D_n() prenant en argument le nombre de case n que devra contenir la grille de Mémory toujours sur une seule ligne. La fonction devra retourner une liste correspondant à cette grille.

>>> memory_1D_n(9)
[9, 8, 2, 1, 7, 3, 6, 3, 5, 8, 2, 4, 9, 1, 5, 4, 6, 7]

Ecrire une fonction memory_2D_n() prenant en argument le nombre de case n que devra contenir la grille de Mémory cette fois-ci sur plusieurs lignes (comme une vraie grille carré de Mémory). La fonction devra retourner la liste de liste correspondant à cette grille.

>>> memory_2D_n(8)
[[1, 8, 5, 6], [2, 7, 4, 2], [7, 1, 5, 4], [8, 3, 3, 6]]

Dans le programme principal, écrire un code permettant d’appeler la fonction memory_2D_n() et d’afficher son retour sous forme d’une grille comme ci-dessous :

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

Créer un programme permettant à l’utilisateur de jouer au memory avec les grilles précédemment générées.