3ra Evaluación II Término 2017-2018. Febrero 23, 2018 /CCPG001
(Editado para tarea, se mantiene el objetivo de aprendizaje)
Tema 2. (50 puntos) Suponga que tiene el archivo «videojuegos.csv»con información sobre todo el contenido de su biblioteca de videojuegos.
El archivo tiene la siguiente estructura:
videojuegos.csv Nombre, Año, Consola, Calificación, Tags (separados por ;) The Legend of Zelda,86,Famicon Disk System,3.5,RPG;Link;Zelda;Hyrile;Triforce Double Dragon,87,Arcade,3.7,Beat-em up; Billy;Jimmy;Puñete The Legend of Zelda,88,NES,4.3,RPG;Link;Zelda;Hyrule;Triforce ... Halo 5:Guardians,15,Xbox One,4,FPS;Master Chief;Cortana;Covenant
Note que un juego aparecerá listado en el archivo una vez por cada consola en la que fué lanzado.
La categoría del juego se especifica siempre en el primer Tag. Por ejemplo, Double Dragon pertenece a la categoriía Beat-‘em up.
Desarrolle lo siguiente:
a) La función juegosConsolas(nomArchivo, categoria, decada) que recibe el nombre del archivo con la información de los videojuegos, una categoría y número de cuatro dígitos representando una década de años. La función retoma una tupla con 2 elementos. El primer elemento es la lista con los valores únicos de todos lo juegos de esa década para esa categoría. El segundo elemento es la lista con valores únicos de todas las consolas que tienen juegos para esa década y categoría.
Por ejemplo, para llamar a juegosConsolas('videojuegos.csv','RPG',1980)
retorna:
(['The legend of Zelda', 'Phantasy Star', ...], ['NES', 'Famicon Disk System', ...])
b) La función crearMatriz(nomArchivo, categoria, decada) que recibe el nombre del archivo con la información de los videojuegos, el nombre de una categoría de videojuegos y un número de cuatro dígitos representando una década de años. La función deberá leer el archivo y retornar una matriz donde las filas representan los juegos de categoria para la decada , las columnas representan las consolas que tienen juegos de categoria para la decada y las celdas son las calificaciones de cada juego para cada consola. Si un juego no existe para una consola, su calificación deberá ser cero (0).
c) La función mejoresJuegos(nomArchivo, categoria, decada) que recibe el nombre del archivo con la información de los videojuegos, el nombre de una categoría de videojuegos y un número de cuatro dígitos representando una década de años. La función deberá generar el archivo “Mejores.txt” con los cinco mejores juegos de la decada para la categoria , ordenados de mayor a menor por su calificación promedio. Para calcular el promedio de un juego, considere únicamente las consolas en las que fue lanzado (no considere los valores cero). El archivo tendrá la siguiente estructura:
NombreNombre,Promedio_calificación
d) La función colecciones(nomArchivo, palabras) que recibe el nombre del archivo con la información de los videojuegos y una lista de palabras. La función deberá retornar otra lista de valores únicos con los nombres de todos los juegos que sus Tags contengan todos los términos de la lista palabras .
Rúbrica: literal a (15 puntos), literal b (17 puntos), literal c (18 puntos), literal d Bono (5 puntos)
Referencia: Archivo original 3Eva_IIT2017.pdf