Simulacin de Gnomos Cocineros
Bienvenidos a Simulacin de Gnomos Cocineros, una simulacin matemtica que combina probabilidad y gestin en un entorno fantasioso. Este proyecto busca simular las habilidades nicas de cinco gnomos cocineros que deben cumplir una misin: preparar un banquete para la gran fiesta del pueblo. Enfrntate a desafos como la gestin del tiempo, la obtencin de ingredientes raros y el control de eventos aleatorios que pueden alterar el resultado final.
Objetivo del Proyecto
El objetivo es crear una simulacin automtica que modele el comportamiento de cinco gnomos cocineros: el panadero, el chef de sopas, el pastelero, el carnicero y el aprendiz. Cada gnomo tiene habilidades especficas y sus acciones estarn regidas por algoritmos probabilsticos avanzados y eventos aleatorios. Al finalizar la simulacin, se mostrar un reporte detallado con los resultados del banquete y el rendimiento de cada gnomo.
Estado Actual
El proyecto est en una fase inicial y an no se ha implementado ninguna funcionalidad. La planificacin est avanzada y contamos con una visin clara de la arquitectura y los objetivos de cada parte del sistema.
Funcionalidades Clave
Funcionalidades Principales
-
Simulacin automtica: Una vez iniciada, la simulacin se ejecuta automticamente sin intervencin del usuario.
-
Cinco gnomos con roles especficos: Panadero, chef de sopas, pastelero, carnicero y aprendiz, cada uno con habilidades y comportamientos nicos.
-
Probabilidad y gestin de tiempo: La lgica de la simulacin se basa en probabilidades y eventos aleatorios, donde cada tarea tiene un porcentaje de xito basado en las habilidades del gnomo.
-
Eventos externos: Se introducen eventos aleatorios como la obtencin de ingredientes raros o imprevistos que dificultan la coccin.
-
IA adaptativa: Cada gnomo sigue patrones de comportamiento inspirados en IA clsica (como los fantasmas de Pacman), adaptndose a los eventos del juego.
-
Reporte final: Al finalizar la simulacin, se genera un reporte con el desempeo de cada gnomo y el resultado del banquete.
Plataforma y Tecnologa
-
Frontend: Construido con Vue.js, ofrecer una interfaz simple para iniciar simulaciones y visualizar los resultados. El tablero de visualizacin incluir sprites de los gnomos estilo pixel art.
-
Backend: El motor de simulacin ser manejado por Python con Django, lo que permitir clculos complejos y algoritmos probabilsticos.
-
Tiempo Real: El frontend permitir una visualizacin en tiempo real del progreso de la simulacin y los eventos que ocurren.
-
Base de datos: PostgreSQL ser la base de datos encargada de almacenar los resultados de cada simulacin, as como el desempeo de los gnomos.
Futuras Funcionalidades
Modos y Opciones
-
Simulaciones avanzadas: Se planea aadir ms eventos externos y complejidades a la lgica de los gnomos, para hacer el juego ms impredecible.
-
Editor de simulaciones: En el futuro, se permitir a los usuarios crear sus propios gnomos con habilidades personalizadas y ajustar las probabilidades de xito.
Visualizacin y Animaciones
-
Tablero animado: Implementaremos un tablero en el frontend que mostrar el progreso de la simulacin, incluyendo animaciones de los gnomos cocinando y buscando ingredientes.
-
Sprites estilo pixel art: Se aadirn grficos estilo retro para darle un toque divertido y nostlgico a la visualizacin.
Algoritmos de Probabilidad e IA
-
Comportamiento avanzado de gnomos: Cada gnomo tendr un algoritmo nico que regir su comportamiento en base a su rol y habilidades, inspirados en IA como los patrones de movimiento de los fantasmas de Pacman.
-
Eventos externos complejos: Introduciremos un sistema de eventos aleatorios que incluir factores externos como el clima, disponibilidad de ingredientes o invitados adicionales al banquete.
Rendimiento y Escalabilidad
-
Escalabilidad en la nube: Se planea optimizar la simulacin para permitir mltiples ejecuciones simultneas en entornos de servidores como AWS o Heroku.
-
Procesamiento paralelo: En simulaciones ms complejas, el motor podr hacer uso de procesamiento paralelo para reducir tiempos de clculo.
Arquitectura del Sistema
La aplicacin sigue una arquitectura de tres capas: frontend, backend y base de datos, con Django como el framework del backend.
@startuml
skinparam style strictuml
actor User
node "Cliente" {
[Frontend (Vue.js)]
}
node "Servidor" {
[API Backend (Django)] --> [Motor de Simulacin]
[Motor de Simulacin] --> [Base de Datos (PostgreSQL)]
}
User --> [Frontend (Vue.js)]
[Frontend (Vue.js)] --> [API Backend (Django)]
@enduml
Descripcin de Componentes
Frontend (Vue.js)
-
Funcionalidad: Proveer una interfaz simple para iniciar la simulacin y ver el progreso y resultados.
-
Visualizacin: Tablero con sprites de gnomos en pixel art, mostrando en tiempo real las tareas que cada gnomo est realizando.
Backend (Django)
-
API: Exponer endpoints REST para iniciar la simulacin, consultar resultados y obtener reportes.
-
Motor de Simulacin: Ejecucin de la lgica probabilstica para la simulacin.
-
Persistencia: Guardar los resultados en la base de datos y generar reportes.
Motor de Simulacin
-
Lgica de simulacin: Implementada en Python, basada en modelos probabilsticos y eventos aleatorios.
-
IA de Gnomos: Cada gnomo sigue un algoritmo de comportamiento personalizado.
Base de Datos (PostgreSQL)
-
Estructura:
-
Tabla Gnomos: Informacin sobre cada gnomo (nombre, rol, habilidades).
-
Tabla Simulaciones: Registro de cada simulacin.
-
Tabla Resultados: Resultados individuales de cada gnomo en cada simulacin.
Cmo Contribuir?
-
Clona el repositorio y crea una rama para tu contribucin.
- Revisa las issues abiertas o sugiere mejoras.
- Implementa nuevas funcionalidades o resuelve bugs.
- Enva un pull request para revisin.
Roadmap del Proyecto
-
Implementar la lgica bsica de simulacin.
-
Desarrollar el frontend con visualizacin en tiempo real.
-
Aadir eventos aleatorios y algoritmos complejos de IA.
-
Optimizacin para mltiples simulaciones simultneas en la nube.
-
Lanzamiento de una versin beta para pruebas comunitarias.
Gracias por interesarte en este proyecto! Si te gusta la simulacin y la gestin de probabilidades, este es el proyecto para ti!