SAÉ 1.01 - Conception et implémentation d'un jeu classique
Ce projet consistait à développer une version fonctionnelle du jeu classique "Snake" en utilisant le langage de programmation C. L'objectif était de mettre en pratique les concepts fondamentaux de la programmation, de l'algorithmique et de la gestion de structures de données.
Il s'inscrit dans le cadre de la compétence "Développer des applications informatiques" et plus spécifiquement l'apprentissage critique "Implémenter des conceptions simples".
Le jeu Snake est un classique où le joueur contrôle un serpent qui se déplace dans une grille. L'objectif est de manger des pommes "6" pour grandir tout en évitant de heurter les murs ou son propre corps.
Ce projet m'a permis de mettre en pratique plusieurs concepts fondamentaux de programmation :
Utilisation de tableaux et de structures pour représenter le serpent et la grille de jeu.
Implémentation d'algorithmes pour la détection de collisions et le déplacement du serpent.
Organisation du code en fonctions modulaires pour une meilleure maintenance.
Suivi et mise à jour de l'état du jeu en réponse aux actions du joueur.
Le développement de ce projet a suivi une approche structurée en plusieurs phases :
Élaboration d'une maquette détaillée pour visualiser l'interface utilisateur et les interactions. Cette phase a permis de définir l'apparence du jeu et les fonctionnalités à implémenter.
Programmation du jeu en langage C, en suivant la maquette et en respectant les bonnes pratiques de développement. Cette phase comprenait la création de l'interface, la logique de jeu et la gestion des entrées utilisateur.
Création d'un cahier de tests détaillant les différents scénarios à vérifier pour garantir le bon fonctionnement du jeu. Cela inclut les tests unitaires pour chaque fonctionnalité et les tests d'intégration.
Exécution des tests définis dans le cahier pour valider le bon fonctionnement du jeu et corriger les éventuels bugs. Cette phase a également permis d'optimiser les performances et d'améliorer l'expérience utilisateur.
Ce projet m'a permis de développer et renforcer plusieurs compétences clés en développement logiciel :
Approfondissement des connaissances en programmation C, notamment la gestion de la mémoire et les structures de données.
Élaboration d'une architecture logicielle cohérente et maintenable pour un projet complexe.
Création et exécution de tests pour identifier et résoudre les problèmes dans le code.
Rédaction d'une documentation claire et complète du code et des fonctionnalités implémentées.