# Écarté ## Étape 1 Objectif : pouvoir faire une partie à deux dans le même terminal. - [x] Prototype « bataille simplifiée » - [ ] Préparation du jeu conforme à l’Écarté - [ ] Distribuer cinq cartes à chaque joueur - [ ] Conserver le talon - [ ] Retourner la carte déterminant l’atout - [ ] Choix manuel des cartes - [ ] Moteur de plis - [ ] Validation complète des coups - [ ] Phase d’écart - [ ] Partie complète - [ ] Ajouter des tests du moteur ## Étape 2 Objectif : séparer le moteur de jeu de l’interface terminal et permettre à deux clients de jouer en réseau local. - [ ] Séparer complètement le moteur de l’interface terminal - [ ] Définir un protocole simple entre client et serveur - [ ] Créer un serveur Ruby - [ ] Créer un client terminal Ruby - [ ] Permettre à deux clients de se connecter au serveur - [ ] Créer et rejoindre une partie - [ ] Identifier les deux joueurs - [ ] Transmettre les actions des joueurs au serveur - [ ] Faire valider tous les coups par le moteur côté serveur - [ ] Transmettre l’état de la partie aux clients - [ ] Jouer une partie complète sur le réseau local ## Étape 3 Objectif : permettre à deux joueurs de jouer à distance par Internet. - [ ] Préparer le serveur pour fonctionner sur le VPS - [ ] Gérer plusieurs parties simultanément - [ ] Générer un identifiant permettant de rejoindre une partie - [ ] Gérer proprement les déconnexions - [ ] Permettre la reconnexion à une partie - [ ] Dockeriser le serveur - [ ] Déployer le serveur sur le VPS - [ ] Sécuriser et configurer l’accès réseau - [ ] Rendre une partie complète jouable à distance ## Étape 4 Objectif : améliorer le confort d’utilisation. - [ ] Améliorer l’affichage dans le terminal - [ ] Afficher clairement le tour du joueur - [ ] Afficher l’historique des plis - [ ] Ajouter des messages d’erreur explicites - [ ] Permettre d’abandonner une partie - [ ] Permettre de rejouer - [ ] Gérer proprement les interruptions du client