Ce dépôt contient un jeu Snake développé en Python, avec une interface graphique réalisée en Pygame, inspiré du Snake Google.
Le projet ne se limite pas à “faire un Snake” :
il vise aussi une architecture claire et professionnelle pour pouvoir complexifier facilement ensuite.
Il intègre :
- Une interface moderne (menu + HUD discret)
- Un moteur de jeu indépendant de l’interface (testable, propre)
- Une animation fluide (interpolation entre deux états en cases)
- Des modes avancés (wrap / portails / obstacles)
- Un système de Combos x2, des Niveaux évolutifs et un Décompte immersif
- Un highscore persistant (stocké dans un dossier utilisateur)
- Le serpent se déplace sur une grille en cases.
- Le joueur dirige le serpent avec les flèches.
- Le but est de manger des pommes pour grandir et gagner des points.
- La partie se termine si le serpent :
- se mord (collision avec lui-même)
- touche un obstacle (si activé)
- touche un mur (si “sans murs” désactivé)
- Déplacement en cases (stable, simple, fidèle à l’esprit “Google Snake”)
- Système de Niveaux : Le jeu s'accélère et rajoute des obstacles tous les 5 pommes
- Combos x2 : Manger deux pommes très rapidement double les points !
- Compte à rebours audiovisuel avant chaque partie
- Score, highscore persistant, et pause
- Sans murs (wrap) : le serpent réapparaît de l’autre côté
- Portails : téléportation entre 2 cases
- Obstacles : cases bloquantes
- Vitesses initiales : lent / normal / rapide
- Option MUTE (M) : Couper globalement les sons
- Grille verte “Google”
- Snake arrondi, pomme lisible
- HUD compact (ne gêne pas le plateau)
- Menu sur une vraie page (le jeu n’apparaît pas derrière)
Le highscore est :
- une variable Python pendant la partie
- sauvegardé dans un fichier dans un dossier utilisateur
Ce choix permet :
- compatibilité macOS
.app - compatibilité Windows
.exe
Séparation claire des responsabilités :
engine.py→ moteur du jeu (règles, collisions, score, génération) sans Pygamepygame_app.py→ interface graphique (menu, affichage, inputs, overlays)config.py→ réglages (taille grille, fps, vitesses…)storage.py→ lecture/écriture du highscore (dossier utilisateur)main.py→ point d’entrée
Cette organisation permet :
- un moteur proprement structuré et découplé de l'interface graphique (Pygame)
- un code 100% traduit en français pour une accessibilité maximale
- une maintenance plus simple et une évolution facile (modes, power-ups, niveaux…)
jeu_snake/
│
├── requirements.txt
├── README.md
│
├── sources/
│ ├── main.py
│ ├── config.py
│ ├── engine.py
│ ├── pygame_app.py
│ └── storage.py
│
└── docs/
├── index.html
├── styles.css
└── assets/
├── screen-menu.png
└── screen-gameover.png
Pour les utilisateurs qui ne veulent pas installer Python, le jeu est disponible en version packagée dans l’onglet Releases du dépôt GitHub.
- Va dans Releases (sur GitHub, à droite du dépôt)
- Télécharge le fichier :
SnakeGoogle-vX.X.X-macos.zip - Dézippe → tu obtiens
SnakeGoogle.app - Lance le jeu :
- Double-clic sur l’app
- ou si macOS bloque : clic droit → Ouvrir → Ouvrir
Si macOS affiche un blocage de sécurité (“développeur non identifié”), c’est normal pour une app non signée.
- Va dans Releases
- Télécharge :
SnakeGoogle-vX.X.X-windows.zip - Dézippe →
SnakeGoogle.exe - Double-clique pour lancer
Windows Defender peut afficher un avertissement sur un .exe non signé : choisir “Informations complémentaires” puis “Exécuter quand même” si tu fais confiance à la source (ce dépôt).