Contexte

Reprise d'un projet C existant pour le relire, le nettoyer et l'enrichir.

Travail réalisé :
• lecture et compréhension du code initial
• réécriture avec des commentaires explicatifs en français
• ajout d'un peu de finition visuelle et de fonctionnalités côté gameplay
• vérification de la compilation sur macOS, Linux et Windows

Objectif

Faire évoluer la base de code en un jeu plus complet et plus propre, sans dépendance externe au-delà de SDL3.

Cibles que je m'étais fixées :
• compilable sur macOS, Linux et Windows
• un menu de sélection de difficulté avant la partie
• un affichage du score lisible sans dépendre d'une police externe
• une organisation du code claire pour faciliter d'éventuelles évolutions

Démarche

Organisation du jeu autour d'une machine à états avec trois grands écrans : un menu de départ, la partie en elle-même, et un écran de fin de partie qui affiche le score et permet de relancer.

Côté refonte du code :
• j'ai séparé les responsabilités d'affichage pour qu'on retrouve plus facilement ce qui dessine quoi
• j'ai centralisé dans un seul endroit les constantes qui définissent la grille et la taille des cases, pour pouvoir les ajuster sans chercher dans tout le code
• j'ai sécurisé les déplacements pour éviter au joueur de mourir bêtement en demandant un demi-tour

Côté gameplay et présentation :
• un menu permet de choisir entre une vitesse normale et un mode difficile plus rapide
• overlay semi-transparent sur l'écran de Game Over avec le score final

Bilan

Améliorations futures envisagées :
• Sauvegarder le meilleur score dans un fichier texte pour le retrouver d'une partie à l'autre
• Ajouter une touche Espace pour mettre la partie en pause
• Ajouter un effet sonore court quand le serpent mange un fruit
• Permettre de revenir au menu à tout moment via une touche dédiée