← Retour aux projets

Jeu RPG 2D en Python

Projet de Terminale NSI - 2026

À propos du projet

Ce projet est un jeu RPG 2D développé en Python en groupe de 3 pour le cours de Numérique et Sciences Informatiques (NSI) de terminale. Le jeu combine des mécaniques classiques de RPG avec une base de données SQL pour la gestion des données des joueurs et du monde du jeu. Nous avions une limite d'un mois et demi pour le concevoir, le coder et préparer une présentation de 10 minutes évaluée qui comporte: un cahier des charges du projet, une analyse fonctionnelle et une présentation sur Canva.

Visuels et Fonctionnalités

Arcade Python

Gameplay

Monde 2D avec système de combat au tour par tour, Amélioration des statistiques du personnage et difficulté progressive

SQL

Base de Données

Utilisation de SQL pour stocker les données des joueurs, des monsres, des armes et de la progression avec un identifiant unique par joueur.

GitHub

Collaboration

Travail en équipe via GitHub avec gestion de versions et organisation des tâches

📊

Statistiques

Système complet de progression avec niveaux, expérience et amélioration de statistiques

Extraits de Code

Système de Combat

class Combat:
    def __init__(self, joueur, ennemi):
        self.joueur = joueur
        self.ennemi = ennemi
        self.tour_joueur = True
    
    def attaquer(self, degats):
        if self.tour_joueur:
            self.ennemi.pv -= degats
            self.tour_joueur = False
        else:
            self.joueur.pv -= self.ennemi.attaque()
            self.tour_joueur = True
    
    def est_termine(self):
        return self.joueur.pv <= 0 or self.ennemi.pv <= 0

Gestion de la Base de Données

import sqlite3

class BDD:
    def __init__(self):
        self.connexion = sqlite3.connect('rpg_game.db')
        self.curseur = self.connexion.cursor()
    
    def sauvegarder_joueur(self, joueur):
        self.curseur.execute("""
            INSERT INTO joueurs (nom, niveau, exp, pv)
            VALUES (?, ?, ?, ?)
        """, (joueur.nom, joueur.niveau, joueur.exp, joueur.pv))
        self.connexion.commit()

Système de Personnages

class Personnage:
    def __init__(self, nom, classe, niveau=1):
        self.nom = nom
        self.classe = classe
        self.niveau = niveau
        self.pv_max = 100 * niveau
        self.pv = self.pv_max
        self.attaque = 10 + (5 * niveau)
        self.defense = 5 + (2 * niveau)
        self.exp = 0
    
    def gagner_exp(self, montant):
        self.exp += montant
        if self.exp >= 100 * self.niveau:
            self.monter_niveau()

Télécharger le Projet

Vous pouvez accéder au code source du projet sur notre dépôt GitHub.

Prérequis

  • Python 3.8 ou supérieur
  • Bibliothèque Python Arcade (pour l'affichage graphique)
  • MySQL (pour la gestion de la base de données)

Installation dans l'invite de commandes :

pip install arcade
pip install mysql-connector-python 

Pour lancer le jeu :

Exécutez le script check_db.py pour initialiser 
la base de données
Lancez Main.py pour démarrer le jeu.

Apprentissages Clés