commit 9813ebd2dbac6183cc85b186e61e08293b9956ac Author: luisgulo Date: Mon Oct 5 22:58:29 2026 +0200 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..f6b47f6 --- /dev/null +++ b/README.md @@ -0,0 +1,108 @@ +# Tower Sentry + +**Tower Sentry** es un juego de estrategia y dominio vertical en 3D isométrica desarrollado en Python con **Pygame**. + +El juego combina elementos de gestión de recursos, exploración de terreno procedural y táctica posicional. + +Tu objetivo es escalar el relieve hasta la cima del mapa, neutralizar a los centinelas guardianes y conquistar la estructura principal. + +--- + +## 📋 Descripción del Juego + +El juego te sitúa en un mapa tridimensional generado de forma procedimental mediante algoritmos de ruido (*noise*). El mapa consta de montañas, colinas, valles y masas de agua. + +En la cima más alta se encuentra la **Cima Principal**, custodiada por un **Centinela Principal**. + +A medida que avanzas de nivel, la dificultad escala añadiendo centinelas secundarios en picos adyacentes. +Para superar cada nivel, debes usar tu energía con cabeza, crear estructuras, clonarte y dominar las alturas. + +--- + +## 🎮 Mecánica y Lógica del Juego + +### 1. Sistema de Dominio Vertical e Interacción +* **Regla de Altura:** Para poder **absorber** y neutralizar a un Centinela, debes estar posicionado a una altura **igual o superior** a la de su casilla. +* **Línea de Visión y Alcance:** Solo puedes interactuar con casillas que estén dentro de tu rango máximo de alcance (`12.0` casillas) y no se encuentren bloqueadas por crestas de terreno elevado. + +### 2. Recursos y Entidades +* 🔵 **Jugador (Avatar):** Tu presencia física en el mapa. Puedes cambiar tu posición teletransportándote a la ubicación de tus clones o subiendo a bloques construidos. +* 🌲 **Árboles:** Elementos de recursos básicos dispersos por el terreno. Absorberlos no cuesta nada y te otorga **+1 de energía**. +* 🧱 **Bloques (+1.2m):** Puedes colocar bloques de elevación sobre casillas para ganar altura o superar obstáculos. + * **Coste de creación:** 2 de energía. + * **Absorción:** Recuperas +2 de energía. +* 💜 **Clones:** Cuerpos sintéticos que puedes proyectar en el mapa para usarlos como puntos de teletransporte táctico. + * **Coste de creación:** 3 de energía. + * **Absorción:** Recuperas +3 de energía. +* 👁️ **Centinelas:** Guardianes de las alturas que bloquean el avance. + * **Requisito para absorber:** Altura del jugador `>=` Altura del Centinela. + * **Recompensa por absorción:** **+10 de energía**. + +### 3. Condición de Victoria y Progresión +Para completar un nivel y pasar al siguiente: +1. Elimina a **todos los Centinelas** del mapa (absorbiéndolos desde una altura superior o igual). +2. Coloca un **Clon** en la peana de la **Cima Principal** (donde comenzó el Centinela Principal). +3. **Teletranspórtate** a dicho clon mediante la tecla `ESPACIO`. + +--- + +## 🕹️ Controles + +| Tecla / Control | Acción | +| :--- | :--- | +| **Flecha Izquierda / Derecha** | Rotar la cámara alrededor del terreno isométrica. | +| **Ratón** | Apuntar e inspeccionar casillas dentro de la línea de visión. | +| **Tecla `A`** | **Absorber** el elemento seleccionado (Árbol, Clon, Bloque o Centinela). | +| **Tecla `B`** | **Crear Bloque** de elevación en la casilla seleccionada (*Coste: 2 Energía*). | +| **Tecla `C`** | **Crear Clon** en la casilla seleccionada (*Coste: 3 Energía*). | +| **Tecla `ESPACIO`** | **Teletransportarse** a un Clon seleccionado o subir a un Bloque. | + +--- + +## 💻 Requisitos del Sistema + +* **Python:** Versión `3.8` o superior. +* **Biblioteca:** `pygame` (versión 2.0.0 o superior). + +--- + +## 🚀 Instalación y Ejecución + +### 1. Clonar o descargar el proyecto +Obtén el archivo del juego (`tower_sentry.py` dentro de una carpeta local. + +### 2. Crear y activar un entorno virtual (Recomendado en Debian/Linux) +En distribuciones recientes de Linux como Debian, es recomendable utilizar un entorno virtual de Python: + +```bash +# Navegar al directorio del proyecto +cd Tower_Sentry + +# Crear entorno virtual +python3 -m venv venv + +# Activar entorno virtual +source venv/bin/activate +``` + +### 3. Instalar dependencias + +Instala Pygame usando pip: +```bash +pip install pygame +``` + +O directamente instalando las librerias Python: +```bash +sudo apt update +sudo apt -y install python3 python3-pip python3-pygame +``` + +### 4. Ejecutar el juego + +Lanza el juego ejecutando el script principal: +```bash + +python3 tower_sentry.py +``` +