Close

EL MasterMind!

  • Résumé : L’objectif est de reproduire un MasterMind électronique. Fini les jeux de société basique, place à la technologie !

Principes:

A la base il y a un concept : le jeu du MasterMind. L’objectif était de prendre les règles de ce jeu et de les transcrire en un algorithme python afin de pouvoir jouer sur et avec l’ordinateur. La suite logique était de créer une interface physique entre l’homme et la machine pour se rapprocher le plus possible du jeu d’origine.

Pour ce faire il y a deux contraintes principales : Le support physique et le lien entre la machine et le support physique.

Le lien:

Le lien entre la machine est assuré par une carte Arduino qui avec différents capteurs et actionneurs va pouvoir faire le lien entre l’utilisateur et le programme. Pour les couleurs c’est un jeu de 4 LED RGB qui sera utilisé. Pour choisir la couleur l’utilisateur a besoins de tourner un bouton prévu à cet effet afin de placer le curseur sur la couleur voulue puis de la sélectionner en confirmant avec un bouton poussoir à côté. Il suffira de répéter 4 fois l’opération et ce sera à la machine de répondre en fonction des entrées de l’utilisateur. En plus de ça, le programme pourra interagir directement avec l’utilisateur à l’aide d’un écran LCD sur lequel des messages et des couleurs (fonds d’écrans) pourront défiler.

Interface en console:

 

 

Au début il y a une interface très basique en console python qui permet d’interagir de façon très superficielle et limitée mais très efficace. A coté on peut voir un exemple de partie gagnée du premier coup (Quel talent !)

Interface numérique:

 

Ensuite une évolution est de créer une interface graphique beaucoup plus agréable à voir et beaucoup plus accessible pour l’utilisateur. Pour ce faire il y a deux solutions possibles en python : Pygame ou Tkinter. Ces deux librairies permettent de créer une interface graphique assez simplement pour un programme Python.

 

Interface physique:

Enfin, l’étape au-dessus est la plus importante et la plus intéressante. Il s’agit de passer d’une interface graphique à une interface physique pour que l’utilisation et le plaisir de jeu soit optimale. Pour ce il aura fallu réaliser le plus difficile : Réécrire totalement le programme en C et l’implémenter dans une carte Arduino pour ensuite réaliser t2)

Ensuite une évolution est de créer une interface graphique beaucoup plus agréable à voir et beaucoup plus accessible pour l’utilisateur. Pour ce faire il y a deux solutions possibles en python : Pygame ou Tkinter. Ces deux librairies permettent de créer une interface graphique assez simplement pour un programme Python.

out le support physique décrit plus haut.

Le support:

Le support physique a été créé par nos soins à l’aide de matériaux de récupération recyclée et adaptés aux besoins du projet. A la base se trouvent les deux boutons pour sélectionner la couleur. A l’intérieur du boitier, se trouvent la carte et toutes les connections afin d’avoir le rendu le plus épuré et le plus accessible possible. Au milieu du boitier qui est un pavé (rectangle en 3D), se trouvent les LED nécessaires au jeu. Enfin en haut se trouve l’écran pour l’interaction machine > joueur.

Le programme :

Un détail qui n’en est pas forcément un est le programme. A la base c’est uniquement une liste de règles sur une notice qui a dû être transcrite en algorithme puis en langage python. Après ça, un problème s’est posé : L’Arduino est en C et non en Python. Il a donc fallu retranscrire le programme en langage compréhensible pour la carte.

La fonction genCouleurs permet de générer un chiffre aléatoire de 1 à 6 et ce 4 fois d’affilé. Ensuite la fonction replaceColors permet de prendre les chiffres générés et de les faire correspondre à une couleur. Ce qui permet de donner le tirage du jeu.


Enfin la fonction jeu prend en paramètre le tirage du programme et les couleurs choisis par le joueur et les compare pour renvoyer au joueur ce qu’il a réussi à trouver ou non

 

Lycée

Ce projet a été réaliser au lycée Jean d'Ormesson à Châteaurenard.

Elève

Ce projet a été réaliser par BAYNI Ilyas et DEMAY Mathieu.

Projet

Ce projet est le dernier projet de fin d'année de première.