Trophées NSI — Présentation complète du projet

Défi Nature

Recréation du jeu Défis Nature en Python : moteur de jeu modulaire, interface Pygame, onglets pédagogiques, robots multi-stratégies et protocole de simulations statistiques reproductibles.

16
Animaux dans le CSV
4
Modules Python principaux
8
Stratégies comparées en stats

Vision du projet

Le projet a été conçu pour être à la fois jouable, pédagogique et analysable.

Objectif gameplay

Reproduire fidèlement les règles de Défis Nature dans une interface claire, avec des interactions rapides (clics, raccourcis clavier, transitions de manches).

Objectif pédagogique

Utiliser les cartes d'animaux comme support d'apprentissage avec un onglet dédié (image, caractéristiques, descriptif) et un vocabulaire accessible à des élèves.

Objectif NSI

Mettre en pratique des notions clés : classes, structures de données, modularité, algorithmes de décision, simulation, reproductibilité et mesure.

Règles implémentées

Déroulement d'une manche

  1. Le joueur actif choisit une caractéristique.
  2. On compare les deux cartes visibles.
  3. La plus grande valeur gagne.
  4. En cas d'égalité, le joueur actif perd.
  5. Les cartes sont réinsérées aléatoirement.

Fin de partie

  • La partie se termine quand un joueur n'a plus de cartes.
  • Un écran de victoire affiche gagnant et état final des piles.
  • Le mode stats applique les mêmes règles (sans affichage Pygame).

La règle « égalité = actif perd » est volontairement conservée : elle augmente le risque sur chaque décision et influence la stratégie des bots.

Fonctionnalités complètes

Modes de jeu

  • Joueur vs Joueur
  • Joueur vs Robot
  • Choix du robot dans le menu Options
  • Écran de démarrage avec prénom

Interface Pygame

  • Boutons caractéristiques + raccourcis 1/2/3
  • Historique des dernières manches
  • Animation de fin de manche
  • Écran victoire avec actions directes

Menu latéral

  • Rejouer
  • Options (volume, debug, robot)
  • Règles, Animaux, Robots, À propos
  • Quitter
Dimension éducative intégrée
  • Onglet Animaux : image + stats + descriptif lisible.
  • Onglet Robots : explications de chaque approche d'IA.
  • Données centralisées dans data/animaux.csv.
  • Conçu pour pouvoir expliquer le projet oralement en NSI.

IA et stratégies

Stratégies disponibles

  • Aléatoire
  • Première caractéristique fixe
  • Heuristique historique (médiane / moyenne)
  • Monte Carlo (random / median)
  • Stratégies de référence « triche » (comparaison complète)

Intérêt algorithmique

  • Comparer hasard, heuristiques et simulation.
  • Observer le compromis performance / temps de calcul.
  • Étudier l'impact de l'historique sur les décisions.
  • Valider les choix par des matchs automatisés.

Mode statistiques (sans Pygame)

Le module sources/stats.py lance des comparaisons de stratégies en masse, avec seed contrôlée et export CSV.

Mesures calculées

  • Winrate
  • IC95 (Wilson)
  • Nombre moyen de manches
  • Décompte des timeouts

Méthodologie

  • Comparaisons symétrisées (A/B puis B/A)
  • Répétitions pour les stratégies coûteuses
  • Paramètres adaptatifs selon la difficulté
  • Reproductibilité via seed

Sorties

  • Affichage console lisible
  • Export dans data/results.csv
  • Résultats réutilisables en tableur
  • Base pour une analyse comparative sérieuse
python sources/main.py play
python sources/main.py stats

Architecture du dépôt

Code

  • sources/main.py : point d'entrée
  • sources/cerveau.py : moteur + IA + CSV
  • sources/game_pygame.py : interface et interactions
  • sources/stats.py : simulations et export

Données / ressources

  • data/animaux.csv : cartes enrichies (descriptif inclus)
  • data/results.csv : résultats de simulations
  • assets/images/animaux/ : illustrations
  • assets/sounds/ : effets sonores

Équipe et répartition

Antonin: Moteur / IA

  • Création du moteur du jeu
  • Stratégies robots
  • Module stats et analyse

Alexi: Interface

  • Écrans Pygame et navigation
  • Options / overlays / ergonomie
  • Affichage des cartes et interactions

Léo: Données / documentation

  • CSV animaux et contenus descriptifs
  • README, site docs et dossier
  • Validation et retours utilisateurs

Le projet s'est construit de façon itérative : base jouable, puis enrichissements IA, amélioration de l'UI, refonte stats, et consolidation de la documentation.