Snike - Snake en C / SDL3
Récupération, refactor et enrichissement d'un clone de Snake en C.
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