Giter Club home page Giter Club logo

bataille-navale's Introduction

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

bataille-navale's People

Contributors

leolesimple avatar tymmi78 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.