Skip to content

A snake game implemented in C with SDL3.

License

Notifications You must be signed in to change notification settings

gfauredev/snake-ng

Repository files navigation

lang
fr

Projet Snake New Generation

Jeu type Snake en C avec la bibliothèque SDL3.

Projet tutoré de développement en C à Polytech Tours.

Outils

Fonction Outil
Compilateur C Clang
Assistance langage C clangd (LSP)
Formateur de code clangd (LSP)
Débugueur C lldb
Système de build CMake (utilise Make)
Versionnage et collaboration Git avec GitHub
Gestion de dépendances et environnement Nix

Bibliothèques

  • SDL3 pour la gestion des fenêtres, les graphismes, l’affichage

Conventions de code

Organisation

Fichier Contenu
main.c Initialisation, boucle principale, fin et nettoyages
param.h Paramètres globaux (macros)
struct.h Structures communes à de nombreux éléments du jeu
render.c + render.h Affichage des éléments et déroulement du jeu
snake.c + snake.h Déplacements, évolution et gestion du serpent
fruit.c + fruit.h Création et gestion des fruits
strings.h Chaînes de caractères du jeu

Nommage des symboles

Symbole Convention
Variable (uint32_t) snake_case (my_var = …)
Tableau (example_tab [] = …) snake_case suivi de _tab
Pointeur (* example_ptr = …) snake_case suivi de _ptr
Macro (constante) (#DEFINE) UPPER_CASE (MY_CONST …)
Fonction (void my_func(uint32_t arg) {…}) snake_case
Types (typedef struct/enum {…} …) snake_case suivi de _t

Formatage du code (sauts de ligne, indentation…)

Formatage automatique avec le « language server » inclus dans Clang. Style de code défini dans le fichier .clang-format.

BasedOnStyle: Microsoft
IndentWidth: 4
UseTab: Never
ColumnLimit: 80
.
.
.

Documentation du code

Documentation de toutes les fonctions en français, suivant la syntaxe Doxygen, comportant au moins la mention @brief, ainsi que @param si la fonction prend un ou plusieurs paramètres, et @return si son type de retour n’est pas void.

/**
 * @brief Ne fais rien, mis à part être un fonction d’exemple
 * @param arg1 Le premier argument
 * @param arg2 Le second argument
 */
void my_func(uint32_t arg1, uint16_t arg2);

Autre

Utilisation des entiers de taille définie uint8_t, uint16_t, uint32_t et uint64_t de la bibliothèque <stdint.h> au lieu des char, short, int et long dépendants de la plateforme.

Norme utilisée du langage C la plus récente, C23.

About

A snake game implemented in C with SDL3.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •