61 lines
2.0 KiB
Markdown
61 lines
2.0 KiB
Markdown
# É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
|
||
|