Aller au contenu

Mini-projet : Jeu "Pierre-Feuille-Ciseaux" en réseau avec Python⚓︎

PFC

🎯 Objectifs

Découvrir la communication réseau avec les sockets et créer un jeu simple en client-serveur.


Introduction⚓︎

Une socket permet à deux programmes de communiquer à travers un réseau.
Nous allons créer un mini-jeu où un joueur client affronte un serveur arbitre.

Le protocole utilisé sera TCP, qui garantit la fiabilité des échanges.

La librairie Socket ne suffit pas dans le contexte du réseau pédagogique. Le pare feu Windows 11 bloque les communications réseaux côté entrant du serveur. On va passer par un autre moyen le theading

✅ Solution : utiliser les threads

Un thread est comme un mini-programme qui tourne en parallèle dans ton programme principal.
Avec le module threading, on peut créer un thread dédié à la réception des messages pendant que le programme principal continue à faire autre chose.

🔄 Fonctionnement obtenu :
👂 Un thread écoute les messages entrants (recvfrom() en UDP).

🧑‍💻 Le programme principal continue à demander des choix à l’utilisateur, afficher des menus, etc.


Voici les fichiers prêts à télécharger et à utiliser :

📡 serveur_udp_pfc.py — le serveur UDP multijoueur

🎮 client_udp_pfc.py — le client UDP à utiliser par les deux joueurs

🛠 À faire :

  • Remplace IP_DU_SERVEUR dans le client par l'adresse IP du poste serveur (ex : '172.16.14.12').
  • Lance le serveur en premier.
  • Lance les clients depuis deux terminaux différents.
  • Chaque joueur tape un choix parmi "pierre", "papier", ou "ciseaux" → le serveur affiche le résultat aux deux clients.

💡 Bonus (si temps)⚓︎

  • Modifie le serveur pour qu’il propose 2 manches.
  • Change le coup du serveur pour qu’il soit aléatoire (import random).