Cargando tu progreso…

Pokédex Codex

Guía del proyecto

¿Cómo funciona?

Una plataforma para aprender a programar desde cero, jugando. Todo corre en tu navegador — no se instala nada.

✨ Las features

📖

El libro

Toda la teoría, de Python a la IA. Cada ejemplo de código se puede editar y ejecutar ahí mismo, sin instalar nada.

🏋️

Ejercicios

Resolvés cada ejercicio y tocás Corregir: corro los tests reales en tu navegador y te digo qué pasa, ejercicio por ejercicio. El editor tiene autocompletado (Tab acepta la sugerencia o indenta), Ctrl/⌘+Enter para correr, Esc para salir con el teclado, y una barra con símbolos (: () [] " =) y A−/A+ para el tamaño de letra. ¿No te acordás algo? El botón 📖 Teoría abre el capítulo del libro sin salir del ejercicio (cerrás y seguís con tu código tal cual).

🏆

La Liga

Tu progreso se vuelve un juego: EXP, niveles, medallas de gimnasio, logros y racha diaria 🔥. Completá una región para ser su Campeón y descargar tu 📜 diploma.

📕

Pokédex

Tu colección estilo Pokémon GO: cada Pokémon es una instancia con su nivel. Subís nivel y evolucionás con 🍬 caramelos. Tocá uno para ver su modal (rareza, línea evolutiva, ataques, mote, liberar).

🎒

Safari

Ves al salvaje y su tasación ⭐, elegís la Pokéball y jugás el minijuego de anillo (mejor timing = mejor captura). Aparecen shiny ✨ y alfa 👑: atrapalos antes de que huyan.

⚔️

Batalla

Armá un equipo y peleá por turnos: contra una CPU para practicar, o en vivo (PvP) contra otro entrenador con ranking ELO. Los tipos importan y, cuando se llena la barra, desatás el ⚡ Súper: un reto de código de tu nivel.

🛒

Tienda

Gastá tus Pokébolas en piedras evolutivas por tipo (Fuego, Agua, Trueno, Hoja, Lunar, Solar, Día, Alba, Noche) y el Disco de Enlace (evos por intercambio), más pociones (curar en batalla) y mejores Pokéballs (Super/Ultra). Cada Pokémon pide la piedra que le corresponde; la evolución se hace en la Pokédex.

🧩

Desafíos de la comunidad

Creá o resolvé retos de Python hechos por otros entrenadores. Ganá Pokéballs, votá los mejores y mirá cómo los resolvieron los demás.

🥊

Líderes de Gimnasio

Mini-proyectos por pasos que se desbloquean al terminar los ejercicios de cada tema. Vencerlos te da la medalla del gimnasio.

🗺️ El viaje: 9 regiones

El curso es una aventura por regiones Pokémon. Cada región te enseña un mundo nuevo, con su libro, sus ejercicios y sus 8 medallas de gimnasio.

🔴
Kanto — Fundamentos de Pythonvariables, condicionales, bucles, funciones, listas, POO, módulos
Johto — Análisis de datosNumPy, pandas y matplotlib: arrays, tablas, gráficos
🟢
Hoenn — APIs con FlaskHTTP, JSON, rutas, métodos, una API REST de verdad
🔵
Sinnoh — Bases de datosSQL y SQLite: tablas, consultas, JOIN, desde Python
Unova — Inteligencia ArtificialMachine Learning con scikit-learn: clasificar, predecir, evaluar
🟠
Kalos — Testing y calidadmanejo de errores, excepciones, escribir tests, TDD
🌺
Alola — Automatizacionesscripts con argumentos, archivos y rutas (pathlib), procesar en lote, subprocess, entorno, fechas, scraping y un bot
🛡️
Galar — Asincronía y concurrenciaasync/await, corrutinas, tareas, gather, colas, hilos y límite de concurrencia
🔶
Paldea — Algoritmos y estructurasbúsqueda y orden, pila, cola, recursión, grafos, tablas hash y complejidad

🎒 Cómo coleccionás Pokémon

  1. Resolvés ejercicios → ganás Pokéballs (+2 cada uno), ganás batallas (+5) y un regalo cada 20 min (+8).
  2. Vas al Safari: aparece un salvaje, elegís la ball y jugás el minijuego de anillo para atraparlo (ver más abajo).
  3. Hacés ejercicios de una región para desbloquear sus Pokémon.
  4. Completar un tema te da su Pokémon insignia; completar una región, un legendario.
  5. 1% de los salvajes son shiny ✨. Atrapar repetidos da 🍬 caramelos para subir de nivel a tus Pokémon (en el PC) y evolucionarlos por nivel.

🎒 El Safari: cómo atrapar bien

En el Safari ya no es tirar y listo: cada encuentro es en dos pasos, igual que en la saga, y vos decidís cómo jugarlo.

  1. Aparece el salvaje: antes de tirar ves su tasación ⭐ (de 0 a 4 estrellas, qué tan buenos pintan sus IVs), su naturaleza y su nivel. Si no te convence, podés Huir y buscar otro.
  2. Elegís la Pokéball que querés tirar (un selector con las que tengas) y entra el minijuego de anillo: un aro se va achicando y tenés que tocar la pantalla justo cuando llega al blanco. Cuanto mejor el timing, mejor el tiro: Excelente > Genial > Bien > Normal.
  3. Captura o escape: la chance de atraparlo depende de la rareza del Pokémon, de la ball que usaste y de la calidad del tiro. Si fallás, el salvaje puede zafar (volvés a tirar) o huir (lo perdés).
  4. Un tiro Excelente no solo sube la captura: además mejora al Pokémon, dejando en 31 sus dos IVs más bajos. Vale la pena buscar el timing.

Las Pokéballs básicas las ganás resolviendo ejercicios; en la Tienda conseguís balls especiales, cada una buena para una situación:

Otras cosas que cambian el encuentro:

  1. Compañero: podés elegir un Pokémon como compañero. Si tiene la habilidad Sincronía, los salvajes salen con su misma naturaleza — útil para cazar la naturaleza que querés.
  2. Shiny ✨: a veces aparece un salvaje brillante. Son rarísimos: atrapalo antes de que huya, porque si zafa lo perdés.
  3. Alfa 👑: algunos salvajes son alfa y traen IVs altos garantizados. Si ves la corona, no lo dejes escapar.

🔥 Safari avanzado: racha, biomas y tamaños

Cuando ya le agarrás la mano al Safari, hay tres cosas más que cambian cada salida y te conviene aprovechar:

  1. Racha de capturas 🔥: atrapar Pokémon uno tras otro sube una racha (la ves en un badge arriba del Safari). Cuanto más larga, más chance de que salgan shiny ✨ y mejores IVs (genes) en lo que aparece. Pero es frágil: se corta a cero si un salvaje se te escapa (huye) o si tocás Huir. Cuando la racha está alta, jugá seguro: usá una ball con buena chance para no perderla.
  2. Biomas y hora ☀️🌙: un strip te muestra el bioma de ahora (🌿 Hierba / 💧 Agua / 🪨 Cueva) y si es ☀️ Día o 🌙 Noche (según tu reloj real). El bioma rota solo cada ~10 minutos y cambia qué Pokémon aparecen, así que si buscás una especie en particular, esperá a que rote al bioma que le toca. De noche o en cueva conviene la Dusk Ball (de la Tienda, $35): da ×3.5 a la captura en esas condiciones.
  3. Tamaños 📏: cada captura tiene un tamaño. Casi siempre es normal, pero a veces sale un raro XXS (chiquito) o XXL (enorme). Los alfa 👑 salen grandes (👑 Coloso). El tamaño lo ves en la captura y como un chip en el modal de la Pokédex.

⚔️ Batalla

En Batalla armás un equipo de hasta 3 Pokémon y peleás por turnos contra un rival CPU. Cada Pokémon usa hasta 4 ataques (los elegís en el modal de la Pokédex, o usa los más fuertes que tenga). Los tipos deciden el daño (agua le gana a fuego, etc.) y el nivel sube el HP y la pegada. A medida que atacás se llena una barra de carga: al 100% desatás el ⚡ Súper ataque, que te pide resolver un reto de código de un tema que ya viste — si acertás (y rápido), pegás durísimo. Ganar te da 🍬 caramelos; perder, unas Pokéballs de consuelo.

En vivo (PvP) el combate es simultáneo, como en los juegos: los dos eligen su jugada a la vez (tenés ~30s; podés cambiarla hasta que el rival cierre la suya) y recién ahí se resuelve. El que tiene más Velocidad pega primero (salvo movimientos de prioridad, que se adelantan). El ⚡ Súper lo resolvés en paralelo mientras el rival elige: la calidad de tu reto escala el golpe. Si te colgás 3 rondas seguidas, perdés por inactividad.

🧬 Cada Pokémon es único

Igual que en los juegos, no hay dos Pokémon iguales. Cuando atrapás uno, queda marcado de por vida con su identidad, que ves en el modal de la Pokédex (tocá un Pokémon → panel 🧬 Identidad):

  1. IVs (genes): un valor fijo de 0 a 31 en cada stat (PS, Atq, Def, At.Esp, Def.Esp, Vel). Se sortean al capturar y nunca cambian. Cuanto más altos, más fuerte el Pokémon.
  2. Naturaleza: una de 25. Sube un stat +10% y baja otro −10% (algunas son neutras). Marca su "personalidad" de combate.
  3. Género ♂/♀ y Habilidad: lo definen al aparecer. Algunas habilidades tienen efecto real en batalla (ver más abajo); el resto son sabor.

⭐ La tasación (el Juez)

El panel de Identidad te tasa al Pokémon de un vistazo, como el Juez de los juegos:

  1. % de IVs: qué tan cerca está del máximo (todos los IVs en 31 = 100%).
  2. Estrellas (de 0 a 4 ★): un resumen del %. 4 estrellas = ≥90%, 3 = ≥75%, 2 = ≥50%, 1 = ≥25%.
  3. Barras por stat: una barra por cada IV, con la frase del Juez al lado — Flojo, Normal, Muy bueno, Fantástico o ¡Inmejorable! (cuando el IV es 31, el máximo).

💪 EVs: entrenar a tu Pokémon

Los EVs (esfuerzo) son la parte que sí podés mejorar: suben los stats con el entrenamiento. Hay dos formas de ganarlos:

  1. Peleando en Batalla, tanto contra la CPU como en vivo (PvP): por cada rival que derrotás, tu equipo gana los EVs que "rinde" esa especie. Al terminar un duelo PvP vas a ver un 💪 +EVs en el resultado.
  2. Vitaminas de la Tienda: Proteína (Atq), Hierro (Def), Calcio (At.Esp), Zinc (Def.Esp), Carburo (Vel) y Más PS (PS). Cada una da +10 EV y se usa desde el modal de la Pokédex, con los botones por stat.

Hay topes, igual que en la saga: 252 EV por stat, 510 EV en total, y 100 EV por stat si los ganás con vitaminas (el resto, entrenando en batalla).

¿Te pasaste o querés rearmar a un Pokémon? En la Tienda hay bayas para bajar EVs, igual que en la saga:

Las bayas y el Borrón se usan desde el modal de la Pokédex (tocá un Pokémon): vas a ver los botones −10 por stat al lado de las vitaminas +10, y el botón ♻️ Reset EVs.

✨ Habilidades con efecto

La mayoría de las habilidades son sabor, pero un set elegido cambia el combate de verdad:

💾 Tu progreso

Todo lo que hacés (ejercicios, medallas, Pokémon) se guarda en la nube ligado a tu cuenta de Google. Podés seguir desde cualquier dispositivo. Sin cuenta, la app funciona igual pero el progreso queda solo en este navegador.

⚙️ ¿Cómo corre Python en el navegador?

Usamos Pyodide: Python compilado a WebAssembly, que corre dentro de la página. Por eso podés ejecutar código, correr pytest, y usar librerías como NumPy, pandas, Flask, SQLite o scikit-learn sin instalar absolutamente nada. La primera ejecución descarga Python (~15s); después es instantáneo.

⚔️ Desafíos de la comunidad

En Desafíos podés crear tus propios retos de Python o resolver los de otros entrenadores. Cada desafío es una función con casos de prueba: si tu solución pasa todos los tests, ganás Pokéballs. Una vez que lo resolvés, podés ver cómo lo resolvieron los demás y aprender de sus enfoques. También podés votar los retos que más te gustaron y reportar los que tengan algún problema.

  1. Resolver: elegís un desafío, escribís tu solución y tocás Corregir. Si pasa los tests, gana Pokéballs.
  2. Ver soluciones: después de resolver, podés ver cómo lo hicieron los demás.
  3. Crear: escribís la consigna, la función, los casos de prueba y la publicás. La comunidad la resuelve y la vota.
  4. Categorías: los desafíos están organizados por región (Kanto, Johto, etc.) según el tema que usan.

🥊 Líderes de Gimnasio

Dentro de Ejercicios, al terminar todos los ejercicios de un tema, se desbloquea el Líder de Gimnasio: un mini-proyecto por pasos que pone a prueba todo lo que aprendiste en esa sección.

  1. Completás los ejercicios del tema → aparece el botón del Líder.
  2. El proyecto se divide en pasos: cada uno tiene su propia consigna y tests.
  3. Usás el botón ▶ Ejecutar para ver los print y el valor de retorno de tu código.
  4. Al pasar todos los pasos, vencés al Líder y ganás la medalla del gimnasio.
📖 Empezar el libro 🏆 Ver mi progreso