Spec - Poneirb/PonyCoinche GitHub Wiki

PonyCoinche - MVP ( Minimum Viable Product ) - Spec fonctionnelles

  • Créer une partie avec 4 Joueurs ( Ecran d’attente, possibilité pour les joueurs de partager la partie simplement )
  • Possibilité de choix des équipes
  • Un Joueur pouvant etre un humain ou une IA

Joueur humain :

  • Afficher à chaque joueur humain le jeu ( main actuelle, carte jouée du tour à minima )
  • Mettre en place les tour d’annonce des joueurs
  • Lancer la partie avec les règles définies par les tours d’annonces
  • Permettre à chaque Joueur de jouer un coup dans l’ordre définie par tour
  • Valider les coup pour empêcher les joueurs de se tromper/tricher
  • Terminer la partie lorsque toute les cartes on été jouées
  • Compter les points => donner une équipe gagnante
  • Proposer de relancer une partie avec les mêmes joueurs ? ( optionnel pour le MVP ? )

IA :

  • IA basique
    • Annonce non stupide
    • Joue des coups valide
  • Interface pour faciliter le branchement d’autres IA

## Spec techniques

Backend ( Serveur / API )

Play! Framework, permet de mettre en place la solution rapidement, java + éventuellement JPA pour la persistence ( peut se faire en SQL pur aussi, meilleur perfs mais plus lent à dev ) DB dans un quelconque SGBD supportant SQL ( postgre ? ) Pour les tests, une version locale est suffisante, pour un test complet on peut envisager de déployer sur la box ovh qu'on loue avec Paul.

Frontend ( Interface web )

Du js, JQuery en renfort je suppose, potentiellement ce sera vraiment que du mappage de données récupéré par l'API avec le moins de JS possible. Je maitrise mal ces technos donc faudrait quelqu'un qui fasse des specs plus propres ( Lulu si tu m'entend )

IA

Du java pour que ca se plug facilement, il faudra définir une interface entre le code serveur et l'IA. L'idéale serait d'avoir une IA capable de jouer chaque tour indépendamment en lui filant bien évidemment toutes les infos au passage.

API

voir https://docs.google.com/document/d/1bw6hzRNwOsvS5GVj2gD28RF7-zacFhDYdEAcbbyh1Sg/edit?usp=sharing Document en cours de rédaction, Faites une demande d'accès en écriture si vous voulez faire des modifs