Categorías
Informática Universitario Videojuego

Ejercicios

Estos son algunos ejercicios que pueden realizarse para practicar lo aprendido en el tema de Introducción, sobre programación en Python y conceptos fundamentales del Aprendizaje Automático y la Minería de Datos.

  1. Escribe un programa que cree un archivo telemetria_partidas.csv con encabezados (jugador_id, tiempo_jugado_min, kills, resultado). Genera al menos 5 filas de datos ficticios. A continuación, lee el archivo línea a línea procesándolo manualmente con cadenas de texto para calcular la proporción global de partidas ganadas vs. perdidas (el llamado Win Rate).
  2. La API de un servidor devuelve una cadena en formato JSON con la carga (loadout) de un personaje (armas, durabilidad y tipo de daño). Usa la biblioteca nativa json para procesar la cadena (crea un fichero ficticio para hacer pruebas), modifica la durabilidad de un objeto tras -supuestamente- usarlo en combate y vuelve a exportar el perfil del personaje a JSON estructurado.
  3. Tienes una lista de mensajes del chat de una partida con datos corruptos o inconclusos (ej: [» GG WP «, «100», «0.8»], [«AFK», «DESCONECTADO», «ERROR»], [» hacker «, «12», «0.99»]). Crea una función que limpie los espacios, filtre los mensajes nulos/desconectados y convierta las puntuaciones de probabilidad de spam/toxicidad a números decimales válidos.
  4. Dada una lista con el daño infligido por un hechizo en 20 combates, escribe funciones en Python puro (sin usar funciones ya creadas para ello) que calculen el daño medio, la mediana de daño y la varianza. Con esto, determina si el hechizo es demasiado inestable o si requiere aumentar o disminuir su poder (buff/nerf).
  5. Representa las coordenadas (x, y, z) de 3 enemigos como una matriz de 3 x 3 usando listas anidadas. Escribe una función que aplique un vector de traslación (ej. mover a todos los enemigos 2 unidades en X y -1 en Z) y otra función que calcule el producto escalar para medir la alineación del personaje con la mirada de un guardia.
  6. Tienes dos listas: el estado real de 10 jugadores (y_real: 1 significa tramposo, 0 significa jugador limpio) y la predicción de tu algoritmo «anti-trampas» (y_pred). Escribe un programa que calcule a mano los Verdaderos Positivos, Verdaderos Negativos, Falsos Positivos (baneos injustos) y Falsos Negativos, imprimiendo la matriz de confusión por pantalla.
  7. La probabilidad teórica de obtener un objeto legendario en una caja de botín es del 1% (p = 0.01). Simula 10 000 aperturas usando random.random() y calcula el p-valor de una racha de suerte «sospechosa» en la que un jugador obtiene 3 objetos legendarios seguidos, para decidir si es suerte o más bien un hack del cliente.
  8. Estás diseñando el sistema de emparejamiento (matchmaking) para un juego 1v1. Tienes una lista de jugadores en la sala de espera, cada uno con su nivel de habilidad registrado como un número (ej. [12, 45, 18, 27, 34]). Dado un nuevo jugador que entra a buscar partida con nivel 20:
    – Escribe una función que recorra la lista y calcule la diferencia absoluta de nivel entre el nuevo jugador y cada uno de los que están esperando.
    – Encuentra y muestra por pantalla el jugador cuyo nivel sea el más cercano (la menor diferencia) para asignarle la partida.
  9. Durante una partida, el motor del juego registra en una lista cada acción destacada que realiza el jugador (ej. [«baja», «baja», «curacion», «baja», «headshot», «curacion»]). Escribe un programa en Python puro que:
    – Recorra la lista y use un diccionario de Python para contar cuántas veces ha ocurrido cada tipo de acción.
    – Calcule el porcentaje que representa cada acción sobre el total de eventos de la partida.
    – Muestre el resultado en texto (ej: {«baja»: 3, «curacion»: 2, «headshot»: 1}).
  10. Tienes una lista de 100 partidas grabadas (replays) para entrenar una IA. Crea un programa que desordene la lista fijando una semilla aleatoria (random.seed) y la divida en un 80% para que la IA aprenda a jugar (entrenamiento), un 10% para validación y otro 10% guardado hasta el final (prueba) para evaluar cómo juega contra estrategias que no ha visto.

Esta página está licenciada bajo CC BY-NC-SA 4.0 por Laboratorios Narratech.