Snake Console Game — Python
A classic Snake game developed in Python to run in the terminal. This project is part of my personal portfolio and demonstrates programming fundamentals, logic, and clean project structure.
" Demo "
-- Features --
Turn-based movement
Random food generation
Score tracking
Wall and self-collision detection
Configurable difficulty (speed)
Game restart option
Persistent high score
-- Controls --
W → Up
S → Down
A → Left
D → Right
Q → Quit
--- How to Run --- Requirements
Python 3.10+ recommended
Run from the project root:
python src/game.py
If you encounter import issues on Windows, use:
python -m src.game
--- Project Structure --- snake-portfolio/ ├─ src/ │ ├─ assets/ │ │ └─ screenshot.png │ ├─ game.py │ ├─ snake.py │ └─ utils.py ├─ README.md ├─ requirements.txt ├─ .gitignore └─ LICENSE
--- What I Learned ---
Working with lists and grid-based coordinates
Separating responsibilities using modules
Game loop control and input validation
Writing clean, readable, and maintainable Python code
Structuring a professional GitHub project
--- Author ---
Fernando Vasquez
--- Juego Snake en Consola — Python ---
Juego clásico Snake desarrollado en Python para ejecutarse en la terminal. Este proyecto forma parte de mi portafolio personal y demuestra fundamentos de programación, lógica y organización del código.
--- Demostración ---
--- Características ---
Movimiento por turnos
Generación aleatoria de comida
Sistema de puntaje
Detección de colisiones (pared y cuerpo)
Dificultad configurable (velocidad)
Opción de reiniciar el juego
Récord (high score) persistente
--- Controles ---
W → Arriba
S → Abajo
A → Izquierda
D → Derecha
Q → Salir
--- Cómo Ejecutar --- Requisitos
Python 3.10 o superior
Ejecutar desde la raíz del proyecto:
python src/game.py
Si hay problemas con imports en Windows:
python -m src.game
--- Estructura del Proyecto --- snake-portfolio/ ├─ src/ │ ├─ assets/ │ │ └─ screenshot.png │ ├─ game.py │ ├─ snake.py │ └─ utils.py ├─ README.md ├─ requirements.txt ├─ .gitignore └─ LICENSE
--- Qué Aprendí con Este Proyecto ---
Manejo de listas y coordenadas en una cuadrícula
Separación de responsabilidades usando módulos
Control del flujo del juego
Validación de entradas del usuario
Estructura profesional para proyectos en GitHub
--- Autor ---
Fernando Vasquez