Jeu de Nim : Logique et Algorithmique

Langage CAlgorithmique

Un projet classique de BUT 1ère année pour maîtriser les fondements de la programmation C, qui a ensuite servi de base à une version personnelle largement améliorée.


Objectif Initial (Projet SAÉ)

Ce projet était un des premiers modules d'algorithmique de la formation. L'objectif était de développer une version fonctionnelle du Jeu de Nim en console, avec une validation rigoureuse des entrées.

Évolution : La Version Avancée

Motivé par le désir d'aller plus loin, j'ai développé une version "avancée" pour pratiquer la structuration modulaire et offrir une expérience configurable.

Comparatif des Fonctionnalités

Fonctionnalité Version de Base (SAÉ) Version Avancée
Modes de jeu 1 seul (Robot Naïf vs Intelligent) 6 modes (HvsH, HvsIA, IAvsIA)
Nombre de bâtons Fixe (ex: 16) Choisi par l’utilisateur
Règle de victoire Fixe Choix : le dernier gagne ou perd
Robustesse Minimale Très élevée (anti-plantage)
Structure Monolithique Modulaire (fonctions distinctes)

Ce que j'ai appris

Ce projet m'a permis de consolider mes bases en algorithmique et en langage C. La création de la version avancée m'a particulièrement appris à structurer mon code de manière modulaire et à gérer les erreurs de manière robuste. C'est un projet qui m'a donné confiance en ma capacité à développer une logique de jeu complexe.

  • Programmation défensive : Validation avancée des entrées (protection contre lettres, buffer overflow).
  • Modularité : Découpage en fonctions (deroulementPartie, parametragePartie).
  • Pointeurs : Manipulation des chaînes de caractères pour les noms de joueurs.
Jouer à la version Web