Introducción
Algoritmos para juegos, parte del Grado en Diseño y Desarrollo de Videojuegos, se presenta como una de las asignaturas más desafiantes de tercer año (o cuarto, si estás en el doble grado). Probablemente ya te hayan contado como funciona, por estudiantes de cursos superiores que ya han pasado por la asignatura. Seguro que has oído historias de terror de ejercicios imposibles, exámenes de mucha presión y “jueces” que no perdonan ni una.
No te voy a engañar — la asignatura es difícil, en gran medida por el tiempo limitado, la gran cantidad de algoritmos a estudiar y la compaginación con otras asignaturas del mismo cuatrimestre (¿oigo por ahí Entornos Multijugador?), pero quiero que este año sea diferente. Por eso he preparado esta selección de apuntes, ejercicios y contenidos multimedia. Mi objetivo es que no solo consigas aprobar la asignatura, sino que además, en la medida de lo posible, sientas que estás aprendiendo algo útil, y disfrutes mientras refuerzas tus habilidades de programación.
Esto es Algoritmos para juegos. Mucha suerte y ánimo.
Distribución de contenidos
- En la sección Contenidos de teoría encontrarás la teoría de los temas de la asignatura, en formato web y con índice navegable. Los temas de Introducción a Python y Algoritmos sobre grafos ya están disponibles, los demás estarán disponibles muy próximamente en lo que acabo de pulir la página web.
- ¿Te sientes preparado/a para demostrar tus conocimientos? En la sección Ejercicios podrás probar a resolver diferentes problemas enfocados a diferentes temas de la asignatura.
- Si aún no te queda del todo claro cómo funcionan algunos algoritmos, tienes a tu disposición una colección de applets interactivos.
Durante los próximos días habrá más novedades, incluyendo más applets, las soluciones de los ejercicios y un simulacro de examen.
Contenidos de teoría
Introducción a Python
Antes de meterte de lleno en el mundo de los algoritmos, tendrás que aprender los entresijos del lenguaje de programación Python, que es el que usaremos a lo largo de la asignatura.
- Te damos la bienvenida a Python
- Sintaxis y consideraciones generales
- Condicionales y bucles
- Estructuras de datos básicas
- Todo sobre entradas y salidas
- Interpretando ejercicios
- Funciones
Algoritmos sobre grafos
Caminos, ciclos, árboles... Quién iba a decir que un puñado de puentes hace 300 años iba a dar tanto de qué hablar...
- Introducción a la teoría de grafos
- Matrices y listas de adyacencia
- Recorrido en profundidad
- Recorrido en anchura
- Ordenación topológica (toposort)
- Componentes conexas
- Puntos de articulación
Algortimos voraces
Estos algoritmos tienen hambre, pero de eficiencia. En ocasiones no son perfectos, pero pueden hallar soluciones rápidas a una multitud de problemas en pocos pasos y de forma sencilla.
- Introducción a los algoritmos voraces
- Contando monedas
- Problema de la mochila
- Tiempos de espera
- Planificación
Voraces sobre grafos
Es hora de demostrar los conocimientos que has adquirido en los temas de algoritmos sobre grafos y voraces, porque aquí vamos a combinar ambos conceptos para crear algoritmos bastante interesantes y con muchas aplicaciones prácticas.
- Introducción a los voraces sobre grafos
- Algoritmo de Dijkstra
- Algoritmo de Prim
- Algoritmo de Kruskal
Divide y vencerás
¿Cómo podemos resolver un problema muy grande? Fácil, dívidelo a la mitad. Y vuelve a dividirlo. Y otra vez. Y una vez más si hace falta.
- Introducción a los algoritmos de divide y vencerás
- Multiplicación y potencias de números grandes
- Búsqueda binaria
Vuelta atrás
En la vida real no puedes retroceder, arreglar tus errores y cambiar el destino, pero en estos problemas con algoritmos de vuelta atrás sí que puedes. Todas las veces que quieras, además.
- Introducción a los algoritmos de vuelta atrás
- Mochila binaria (cero-uno)
- Laberintos
- Problema de las ocho reinas
- Caminos y ciclos hamiltonianos
Ejercicios
Tema 0: Introducción a Python
Tema 1: Algoritmos sobre grafos
Tema 2: Algoritmos voraces
Tema 3: Voraces sobre grafos
Tema 4: Divide y vencerás
Tema 5: Vuelta atrás
Applets interactivos
Se recomienda acceder a estos applets desde un navegador de escritorio o una tablet.