Skip to content

TomasEscudero04/snake-python-cursor

Repository files navigation

Snake (Pygame)

Juego clásico de la serpiente implementado con Pygame y refactorizado en módulos.

Características

  • Movimiento de la serpiente en una cuadrícula.
  • Comida aleatoria evitando superponer la serpiente.
  • Puntuación por comida ingerida.
  • Guardado de récord en high_score.json (en la raíz del proyecto).
  • Pantalla de Game Over con opciones: Reiniciar (R) o Salir (Q).
  • Menú de selección de dificultad (Fácil/Normal/Difícil).
  • Sonidos: inicio, comer y game over (silenciar con M).
  • Música de fondo opcional (assets/sounds/music.wav), se detiene en Game Over.

Requisitos

  • Python 3.11+ (recomendado)
  • Pygame (se instala con requirements.txt)

Instalación

  1. Clona o descarga el proyecto.
  2. Abre una terminal en la carpeta del proyecto:
cd "C:\Users\tomye\Tareas Rolling-IA Codeboost\Snake-cursor"
  1. Crea y activa un entorno virtual (elige CMD o PowerShell):

CMD:

py -m venv .venv
\.venv\Scripts\activate.bat

PowerShell (si tu política lo permite):

py -m venv .venv
\.venv\Scripts\Activate.ps1

Si PowerShell bloquea scripts, usa CMD o establece una política temporal en esa sesión:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
\.venv\Scripts\Activate.ps1
  1. Instala dependencias:
pip install -r requirements.txt

Ejecución

python main.py

Controles

  • Flechas: mover la serpiente
  • P: pausar/reanudar juego
  • R: reiniciar en Game Over
  • Q: salir en Game Over
  • M: silenciar/activar sonidos
  • +/=: subir volumen
  • -: bajar volumen

Estructura del proyecto

Snake-cursor/
  game/
    __init__.py
    config.py      # Constantes (tamaño, colores, tick rate, ruta récord)
    snake.py       # Lógica de la serpiente
    food.py        # Lógica de la comida
    ui.py          # Renderizado y pantalla de Game Over
    core.py        # Bucle principal y récord
  main.py          # Punto de entrada
  requirements.txt # Dependencias
  pyproject.toml   # Configuración black/isort/ruff/mypy
  README.md
  high_score.json  # (se crea automáticamente al superar un récord)
  assets/
    sounds/
      eat.wav       # (agrégalo tú)
      game_over.wav # (agrégalo tú)
      start.wav     # (agrégalo tú)
      music.wav     # (opcional, música de fondo)

Récord (high_score.json)

  • El récord se carga al iniciar y se guarda al finalizar si superas el máximo.
  • Formato:
{"high_score": 12}

Configuración y formato de código

  • Se incluye pyproject.toml con configuración para black, isort, ruff y mypy.
  • Opcional: puedes ejecutar tus herramientas locales si las tienes instaladas.

Problemas comunes

  • PowerShell bloquea la activación del entorno (PSSecurityException):
    • Opción rápida: usa CMD con \.venv\Scripts\activate.bat.
    • O temporal en PowerShell: Set-ExecutionPolicy Bypass -Scope Process y luego activa el venv.
  • Pygame no se instala: verifica tu versión de Python y vuelve a pip install -r requirements.txt.

Licencia

Uso libre para fines educativos.

About

Juego de la serpiente con python a modo de practica de cursor

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages