Projet informatique : les Échecs

Université de Nice Sophia-Antipolis

Enseignant : Pierre Crescenzo



Ce projet consiste à programmer le célèbre jeu des Échecs.

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 des Échecs étant célèbre, vous pouvez en trouver les règles sur Internet. Je vous suggère, par exemple, la lecture des règles pour initiation de la Fédération Française des Échecs.

Objectifs

  1. Réalisez une interface textuelle permettant de jouer.
  2. Réalisez une interface graphique permettant de jouer.
  3. Programmez, pour chaque type de pièce, les tests permettant de vérifier la validité d'un déplacement.
  4. Programmez les règles particulières : roques, promotion et prise en passant.
  5. Programmez la détection de la position d'échec.
  6. Programmez la détection de fin de partie : échec et mat, pat et autres cas de match nul.
  7. Programmez un joueur automatique. Le joueur automatique doit respecter au moins la règle essentielle : ne pas mettre son roi en échec.
    1. Le joueur automatique est stupide : il réalise un déplacement valide au hasard.
    2. Le joueur automatique est peu habile : dès qu'il détecte la possibilité de faire échec au prochain tour, il fait le déplacement 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 un emplacement de pièces défini 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. Faites intervenir le temps. Vous pouvez, pour cela, consulter les règles de compétition de la Fédération Française des Échecs, qui indiquent notamment l'usage de la pendule.
  2. Modifiez les règles de déplacement ou de prise des pièces pour en expérimenter de nouvelles.

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/echecs.html conforme à XHTML 1.1 et à CSS 2.1
Contact et maintenance : Pierre Crescenzo
Création : 2003/04/01
Dernière modification : 2009/04/24