Projet informatique : la Contrée

Université de Nice Sophia-Antipolis

Enseignant : Pierre Crescenzo



Ce projet consiste à programmer le célèbre jeu de la Contrée (aussi appelée Belote contrée ou Coinche ou Belote coinchée).

Dates et consignes générales

Respectez les contraintes de date et les consignes générales qui vous ont été données par l'enseignant qui vous a attribué ce projet. Ne réalisez que les objectifs et variantes précisés par l'enseignant, les autres ne sont considérés comme bonus que si tous les objectifs et variantes demandés sont complets et correctement réalisés.

Règles du jeu

Le jeu de la Contrée est célèbre et ses règles sont aussi nombreuses que variées. Faute d'avoir trouvé un site officiel, je vous propose de vous référer à celui de Dominique Hazaël-Massieux.

Objectifs

  1. Réalisez une interface textuelle permettant de jouer.
  2. Réalisez une interface graphique permettant de jouer.
  3. Programmez le mélange et la distribution des cartes aux joueurs.
  4. Programmez l'étape des annonces.
  5. Programmez la vérification que chaque joueur a effectivement le droit de jouer la carte qu'il joue (il devra donc être possible de mal voire très mal jouer, mais pas de se tromper ou tricher).
  6. Programmez le comptage des points et la tenue d'un tableau des scores qui indique les points de chaque équipe et, à la fin, signale l'équipe gagnante.
  7. Programmez un joueur automatique.
    1. Le joueur automatique est stupide : il pose une carte au hasard parmi celles qu'il a le droit de jouer.
    2. Le joueur automatique est peu habile : il cherche si une de ses cartes peut lui faire gagner le pli (autant qu'il le sache en fonction des cartes déjà jouées dans ce tour) et, dès qu'il en trouve une, il la joue sans chercher plus loin. S'il ne trouve rien d'évident, il agit comme le joueur stupide.
    3. Le joueur automatique est intelligent : il détermine une stratégie (à vous de l'établir) pour gagner.
    4. Le joueur automatique est aléatoire : il prend, au hasard, l'un des comportements possibles.
    5. Le joueur automatique est peu décidé : il prend, au hasard, l'un des comportements possibles et en change de temps en temps.
  8. Faites jouer différents joueurs automatiques entre eux et faites des statistiques sur leurs résultats pour mettre en évidence leurs qualités et faiblesses.
  9. Programmez le jeu en réseau.
  10. Programmez la possibilité de choisir la main d'un, plusieurs ou tous les joueurs en début de partie.
  11. Ajoutez une base de données au jeu. Elle peut avoir plusieurs usages comme :
    1. Programmez la sauvegarde d'une partie pour pouvoir la reprendre plus tard.
    2. Programmez la sauvegarde du déroulement d'une partie et la possibilité de la revoir plus tard, pour pouvoir l'étudier.
    3. Programmez un historique pour chaque joueur. Cet historique offre la possibilité d'étudier le déroulement de ses propres parties ou de celles des autres joueurs, d'évaluer son évolution ou encore de classer les joueurs entre eux.
    4. Utilisez les parties sauvegardées comme base de connaissances, pour améliorer les capacités du joueur automatique intelligent.

Variantes

Il est possible de composer certaines variantes.

  1. Trouvez, notamment grâce à Internet, des variantes de règles.
    1. Programmez-les.
    2. Permettez aux joueurs de choisir parmi les variantes de règles, en début de partie.
  2. Programmez des variantes dans la manière de distribuer les cartes. Laissez au joueur qui est supposé distribuer le choix de la variante.
  3. Programmez des variantes dans la manière de couper les cartes. Laissez au joueur qui est supposé couper le choix du nombre de cartes à couper.

Tout n'est pas dit : l'intérêt d'un projet est de découvrir, expérimenter, créer, comprendre, innover… en un mot réfléchir ! Si vous voulez me proposer des améliorations ou de nouveaux objectifs ou variantes, écrivez-moi.


XHTML 1.1 validé ! CSS 2 validé ! GNU's Not Unix Debian GNU/Linux Optimisé pour tout navigateur ! Contre les brevets logiciels !

URI : http://www.crescenzo.nom.fr/Projets/contree.html conforme à XHTML 1.1 et à CSS 2.1
Contact et maintenance : Pierre Crescenzo
Création : 2003/12/09
Dernière modification : 2009/04/24