- Accueil
- Projets
- SAE 5.02
Projets d'Études · BUT 3ème année
SAE 5.02 — Piloter un projet informatique (Krojanty)
Jeu de stratégie en C avec IA, interface graphique et multijoueur réseau
- C
- GTK4
- TCP/IP
- Algorithme Minimax
- Alpha-Beta Pruning
- Make
- Doxygen
Contexte
Projet de développement d'un jeu de stratégie en tour par tour en langage C. Les règles du jeu ont été inventées par le professeur durant l'été. Le jeu devait avoir une interface graphique (GTK4), pouvoir être joué en réseau avec les jeux des autres groupes (groupes de 6 environ), et disposer d'une IA capable de jouer automatiquement en réseau ou en local face à l'humain.
Description
Mon rôle dans ce projet était de coder l'intelligence artificielle du jeu, qui est basée sur l'algorithme Minimax avec élagage alpha-beta. J'ai également intégré le code de chaque membre de l'équipe dans un projet cohérent et coordonné les aspects techniques du processus de développement.
En détail
Technologies
- C
- GTK4
- TCP/IP
- Algorithme Minimax
- Alpha-Beta Pruning
- Make
- Doxygen
Mon rôle
- Développement de l'intelligence artificielle (Minimax avec élagage alpha-beta)
- Intégration du code de chaque membre de l'équipe
- Coordination technique du projet
Architecture du projet
- Moteur de jeu (gamelogic.c)
- Gestion du plateau, validation des coups, règles du jeu
- Intelligence Artificielle (ai.c)
- Algorithme Minimax avec élagage alpha-beta, table de transposition, 3 niveaux de difficulté (facile: profondeur 3, moyen: profondeur 4, difficile: profondeur 8)
- Interface graphique (gui.c)
- Interface GTK4 avec grille 9x9 interactive, panneau latéral, logs de partie
- Réseau (net.c)
- Communication TCP/IP, protocole de communication entre joueurs, mode serveur/client
Règles du jeu
- Pièces : Roi, Soldats, Forts
- Objectifs : Capturer le roi adverse, occuper le fort adverse avec son roi, ou éliminer tous les soldats adverses sauf un
- Déplacements en ligne droite avec traces de territoire
- Captures par déplacement sur case occupée
Modes de jeu
- Local 2 joueurs
- Local contre IA (3 niveaux de difficulté)
- Mode serveur (hébergement)
- Mode client (connexion réseau)
Gestion de projet
- Utilisation de GitLab pour la collaboration
- Répartition des tâches en équipe de 6
- Documentation technique avec Doxygen
- Tests unitaires et validation
- Compilation avec Makefile
Compétences développées
- Programmation C avancée
- Algorithmes d'IA (Minimax, élagage alpha-beta)
- Programmation réseau TCP/IP
- Développement d'interfaces graphiques GTK
- Intégration de code multi-développeurs
- Gestion de projet informatique
- Tests et validation
Ressources
Code source disponible dans le dossier krojanty/imm2526-gr3
Programme national
- Apprentissages critiques
- AC31.02 | Réaliser la documentation technique de ce projet
- AC31.03 | Réaliser une maquette de démonstration du projet
- AC31.04 | Défendre/argumenter un projet
- AC31.05 | Communiquer avec les acteurs du projet
- AC31.06 | Gérer le projet et les différentes étapes de sa mise en œuvre en respectant les délais
- AC32.05 | Collaborer en mode projet en français et en anglais
- AC33.01 | Élaborer les spécifications techniques et le cahier des charges d'une application informatique
- AC33.02 | Mettre en place un environnement de travail collaboratif
- AC33.03 | Participer à la formation des utilisateurs
- AC33.04 | Déployer et maintenir une solution informatique
- AC33.05 | S'informer sur les évolutions et les nouveautés technologiques
- AC33.06 | Sécuriser l'environnement numérique d'une application
- Composantes essentielles
- CE1.01 | en choisissant les solutions et technologies réseaux adaptées
- CE1.02 | en respectant les principes fondamentaux de la sécurité informatique
- CE1.03 | en utilisant une approche rigoureuse pour la résolution des dysfonctionnements
- CE1.04 | en respectant les règles métiers
- CE1.05 | en assurant une veille technologique
- CE2.01 | en communiquant avec le client et les différents acteurs impliqués, parfois en anglais
- CE2.02 | en faisant preuve d'une démarche scientifique
- CE3.01 | en étant à l'écoute des besoins du client
- CE3.02 | en documentant le travail réalisé
- CE3.03 | en utilisant les outils numériques à bon escient
- CE3.04 | en choisissant les outils de développement adaptés
- CE3.05 | en intégrant les problématiques de sécurité
- Ressources mobilisées et combinées
- R5.04 | Cycle de vie d'un projet informatique
- R5.05 | Anglais : Insertion professionnelle 1
- R5.06 | Expression-Culture-Communication professionnelles : S'intégrer dans une organisation
- R5.07 | Projet Personnel et Professionnel
- R5.08 | Gestion de projets 3 : Mener un projet professionnel
- Compétences ciblées
- Administrer les réseaux et l'Internet
- Connecter les entreprises et les usagers
- Créer des outils et applications informatiques pour les R&T