/Bataille-Navale

Découvrez notre jeu de Bataille Navale en Python, alliant stratégie et suspense. Affrontez adversaires dans des duels navals. Chaque partie promet tactique et divertissement. Embarquez pour la victoire !

Primary LanguagePythonOtherNOASSERTION

Projet Bataille navale — NSI T°

Description

Ce projet de Bataille Navale, développé dans le cadre de la matière NSI (Numérique et Sciences Informatiques) en Terminale générale, vise à mettre en pratique et évaluer nos compétences acquises durant l'année de Première et le début de la Terminale. Il s'agit d'un travail de groupe qui combine programmation, utilisation de bases de données, et développement d'interfaces graphiques...

Ce projet a été réalisé du 12/12/2023 au 7/01/2024, les auteurs sont Léo Lesimple, Timothée Gallier et Léa-Angélina Kolmerschlag, il est distribué sous la license CC BY-NC-ND 4.0, voir en bas de page le détail, une copie de la license est disponibles dans le fichier LICENSE.

Prérequis

  • Python : Une version récente de Python (3.x) doit être installée. Le projet a été développé avec Python 3.8, mais il devrait être compatible avec les versions ultérieures.

  • Police :

    • Parisine (disponible dans le dossier font)
  • Bibliothèques Python :

    • Tkinter : Pour l'interface graphique. Tkinter est généralement inclus dans les installations standard de Python.
    • SQLite3 : Utilisé pour la gestion de la base de données. Cette bibliothèque est normalement incluse dans les distributions standard de Python.
    • Pyglet (optionnel) : Pour la gestion des sons dans le jeu, si utilisé.
    • SQLite : Une base de données SQLite est requise pour stocker les informations des joueurs et leurs scores. Le fichier de base de données doit être nommé general.db.

Utilisation

  • Pour lancer le jeu, il suffit de lancer depuis votre environnement de développement ou depuis votre terminal.

    • Pour lancer depuis le terminal :
    1. Pointer le dossier (répertoire) où sont stockés les fichiers du jeu.
    2. Taper python index.py ou py index.py selon votre installation
    3. Le jeu est lancé !

Fonctionnalités implémentées

Cliquez pour lire les fonctionnalités.

Sélection des Joueurs :

Choix des joueurs parmi une liste existante dans une base de données. Vérification pour s'assurer que les deux joueurs sélectionnés sont différents.

Gestion des Joueurs dans la Base de Données :

Ajout de nouveaux joueurs dans la base de données. Suppression de joueurs existants de la base de données.

Affichage et Gestion du Tableau des Scores (Leaderboard) :

Affichage des scores des joueurs. Mise à jour des scores en fonction des performances dans le jeu.

Configuration du Jeu :

Configuration des paramètres initiaux du jeu, comme le placement des bateaux.

Déroulement du Jeu :

Gestion des tours entre les joueurs. Placement des bateaux sur la grille de jeu. Exécution des tirs et gestion des résultats (touché, manqué, coulé). Détection et annonce du gagnant.

Interface Graphique Utilisateur :

Fenêtres et interfaces graphiques pour la configuration du jeu, le jeu lui-même, et l'affichage des scores. Boutons interactifs pour diverses actions dans le jeu.

Gestion des Erreurs :

Messages d'erreur pour guider les utilisateurs lors de situations incorrectes (par exemple, sélection de joueurs identiques).

Jouer des Effets Sonores (non actif):

Lecture de sons d'ambiance pendant le jeu.

Fin du Jeu :

Affichage d'un écran de fin de jeu avec le nom du gagnant. Option pour fermer le jeu ou afficher le tableau des scores.

Menu Principal :

Écran d'accueil offrant des options pour commencer une nouvelle partie ou consulter le tableau des scores.

Crédits du Jeu :

Affichage des noms des développeurs ou contributeurs du jeu.

Dépannage :

Au lancement de nouvelles fenêtres, celle-ci a de temps en temps besoin d'être déplacée pour fonctionner, nous espérons trouver la solution à ce problème au plus vite !

Commentaires :

  • La partie de code produite par Léo est essentiellement formulée en anglais par habitude sur d'autres projets.

Crédits images

Fond mer : Image by kdekiara on Freepik

Projet Bataille Navale © 2024 by Léo Lesimple, Timothée Gallier, Léa-Angélina Kolmerschlag is licensed under CC BY-NC-ND 4.0