Vous êtes sur la page 1sur 2

TP2 : Socket

Il vous est demandé de développer un programme ( client/serveur) qui permettra de jouer une
manche de MasterMind contre l’ordinateur.
Le langage de programmation sera Python.
Pour rappel le MasterMind se joue à deux en plusieurs manches.
À chaque manche un joueur crée une combinaison de pions de différentes couleurs et l’autre
joueur doit deviner la combinaison.
Vous allez développer le programme permettant de jouer une manche : le serveur créera la
combinaison secrète et le joueur ( le client ) devra deviner la combinaison.

Il vous est demandé de suivre les règles de la version originale du jeu disponible en ligne à
cette adresse : https://www.regles-de-jeux.com/regle-du-mastermind/.

Ces règles seront modulées selon les spécifications détaillées ci-après.

Spécifications
Une manche pourra être configurée par trois paramètres :
• Le nombre de couleurs utilisées : de 4 à 8
• Le nombre d’éléments composant une combinaison : 4 pions ou 5
• Le nombre de propositions maximal pour deviner la combinaison de 12 à 14

On utilisera un dictionnaire pour stocker les paramètres de la manche. Pour coder les couleurs
on utilisera un entier.

Pour afficher un pion, on affichera la lettre associée à la couleur.


La lettre sera l’initiale du nom de la couleur (sauf pour le blanc qui prendra l’initiale du mot
en anglais White).
Au démarrage de la manche, une série de questions seront posée à l’utilisateur pour
paramétrer la manche.
Ensuite l’ordinateur construira aléatoirement une combinaison (respectant les contraintes des
paramètres de la manche).
Puis il sera joué autant de tour que nécessaire pour déterminer si l’utilisateur à remporter ou
non la manche.
A chaque début de tour les précédentes propositions seront réaffichées avec le nombre de
pions bien placés et le nombre de pions mal placés.
Il sera demandé à l’utilisateur sa proposition.
La proposition sera affichée suivie du nombre de pions placés et du nombre de pions mal
placés.
Si l’utilisateur a gagné on lui affichera un message, s’il a perdu on lui affichera également un
message, sinon on passera au tour suivant.
Le code écrit en Python devra être modulaire (fonctions).
Aucune variable en dehors des fonctions ne devra être utilisée.
Le code devra être commenté.
Les noms des variables et des fonctions devront être significatifs (on veillera à ce que les
identifiants permettent de comprendre le rôle des variables ou fonctions associées).

Vous aimerez peut-être aussi