Giter Site home page Giter Site logo

belote's Introduction

[SUJET] Jeu de Belote - Projet IFB - TC P20

L'objectif du projet est de créer un programme en mode console permettant à un joueur de jouer à la belote, et plus précisément à la Coinche, dont les règles sont mentionnées ci-après..

Règles du jeu

Belote classique : https://www.belote.com/regles-et-variantes/les-regles-de-la-belote-classique/
Coinche : https://www.belote.com/regles-et-variantes/regle-belote-coinche/

Objectifs du projet

L’objectif du projet est de réaliser le programme permettant de jouer à ce jeu via une interface console. Le jeu permettra à un seul joueur de jouer, les 3 autres joueurs (y compris le partenaire du joueur) seront contrôlés par l’ordinateur.

Vous devrez notamment réaliser :

  • Un menu principal permettant de démarrer une nouvelle partie, d’afficher les meilleurs scores ou de quitter. Le joueur sera invité à entrer son nom avant le début de la partie.
  • Un affichage permettant d’afficher les cartes que le joueur a en main
  • Un affichage permettant d’afficher les cartes du pli en cours
  • Un menu permettant d'annoncer un contrat ou de passer pendant le tour d’enchère
  • Un menu permettant de jouer une carte parmi les cartes en main, tout en respectant les règles
  • Une sauvegarde du nombre de victoires d’un joueur dans un fichier : chaque joueur identifié par son nom sera enregistré dans un fichier, avec son nombre total de victoire.
  • Un affichage présentant les meilleurs scores (accessible à partir du menu principal)

Les règles de la Coinche devront être appliquées par l’ordinateur :

Distribuer les cartes aux différents joueurs

  • Contrôler que le joueur joue conformément aux règles (règles des enchères et règles pour la pose des cartes)
  • Définir qui remporte le pli lorsque les 4 cartes sont jouées, en tenant compte de la valeur des cartes et de la couleur d’atout
  • Comptage des points et vérification du contrat
  • Dans ce projet, la gestion des annonces est facultative

Une pseudo intelligence artificielle sera également réalisée pour jouer avec le joueur :

  • L’IA joue en respectant les règles
  • Au moment des enchères : si une IA possède 3 cartes fortes d’une couleur donnée, elle annoncera un contrat de 80 points pour cette couleur, si elle possède 4 cartes fortes de cette couleur, elle annoncera un contrat de 120 points pour cette couleur
  • Si l’IA est en mesure de remporter le pli avec une de ses cartes, elle le fait en posant la carte la plus faible possible
  • Si l’IA n’est pas en mesure de remporter le pli, elle joue sa carte la plus faible
  • Vous pouvez enrichir votre IA avec des règles heurisitiques que vous aurez élaborées et justifiées dans votre rapport.

Proposition d'interface de jeu

Les captures d’écran suivantes illustrent ce à quoi pourrait ressembler le jeu. Vous êtes libre de vous en inspirer pour votre projet.

Menu principal

Menu

Ecran d'enchère

Encheres

Phase de jeu

Pli

Conditions de réalisation du projet

Le projet sera intégralement réalisé en C. Il devra être fait en binôme (ou trinôme sur dérogation) de membres d'un même groupe.

Le projet donnera lieu à la production :

  • De fichiers sources (fichiers .c et fichiers .h) qui devront être dûment commentés et documentés
  • D'un rapport d'une dizaine de pages présentant le travail réalisé, notamment la structure générale de votre code, les choix réalisés pour le développement du jeu, et le résultat final (en faisant le bilan de ce qui a été réussi et des points d’amélioration éventuels)

Le projet donnera également lieu à une soutenance pendant laquelle le projet sera présenté. Cette soutenance aura lieu pendant les heures de cours.
L’ensemble des fichiers seront déposés sur Moodle dans l’espace de dépôt “Dépôt projet P20”. Ils devront être contenus dans une archive nommée NOM-BINOME1_NOM-BINOME2_NOM-BINOME3.zip
Cette archive contiendra : votre rapport au format PDF et vos sources dans un dossier séparé.

belote's People

Contributors

ewen44 avatar juknum avatar silva-theo avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.