{"id":5198,"date":"2018-02-24T17:54:16","date_gmt":"2018-02-24T22:54:16","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/icm00794\/?p=5198"},"modified":"2026-04-05T18:33:57","modified_gmt":"2026-04-05T23:33:57","slug":"s3eva2017tii_t2-biblioteca-videojuegos","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s3eva20\/s3eva2017tii_t2-biblioteca-videojuegos\/","title":{"rendered":"s3Eva2017TII_T2 biblioteca videojuegos"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-3eva20\/3eva2017tii_t2-biblioteca-videojuegos\/\" data-type=\"post\" data-id=\"5194\">3Eva2017TII_T2 biblioteca videojuegos<\/a><\/p>\n\n\n\n<p>Propuesta de soluci\u00f3n en <strong>Python<\/strong>:<\/p>\n\n\n\n<p>archivo de prueba: <a href=\"https:\/\/www.dropbox.com\/s\/tla0sjyhh5lbugt\/videojuegos.csv?dl=0\">videojuegos.csv<\/a><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# CCPG1001-Fundamentos de Programaci\u00f3n - FIEC-ESPOL\n# 3Eva_IIT2017_T2 biblioteca videojuegos\n\nimport numpy as np\n\ndef juegosConsolas(nomArchivo, categoria, decada):\n    productos = &#x5B;]\n    equipos   = &#x5B;]\n    listado   = &#x5B;]\n    if (decada&gt;99):\n        decada = decada%100\n    \n    archivo = open(nomArchivo,'r')\n    # encabezado\n    linea = archivo.readline()\n    # primera linea de datos\n    linea = archivo.readline()\n    while not(linea==''):\n        linea  = linea.strip('\\n')\n        partes = linea.split(',')\n        njuego = partes&#x5B;0]\n        anio   = int(partes&#x5B;1])\n        cons   = partes&#x5B;2]\n        calf   = float(partes&#x5B;3])\n        lista  = partes&#x5B;4].split(';')\n        categ  = lista&#x5B;0]\n        tags   = lista&#x5B;1:]\n        \n        if (anio&gt;=decada\n            and anio&lt;=(decada+10)\n            and (categ==categoria)):\n            \n            if not(njuego in productos):\n                productos.append(njuego)\n            if not(cons in equipos):\n                equipos.append(cons)\n            listado.append(&#x5B;njuego,cons,calf])\n            \n        linea = archivo.readline()\n    archivo.close()\n    respuesta = (productos,equipos, listado)\n    \n    return(respuesta)\n\ndef crearMatriz(nomArchivo, categoria, decada):\n    indices = juegosConsolas(nomArchivo,\n                             categoria,\n                             decada)\n    filas    = indices&#x5B;0]\n    columnas = indices&#x5B;1]\n    datos    = indices&#x5B;2]\n    n = len(filas)\n    m = len(columnas)\n    matriz = np.zeros(shape=(n,m), dtype=float)\n    q = len(datos)\n    \n    for i in range(0,q,1):\n        f = filas.index(datos&#x5B;i]&#x5B;0])\n        c = columnas.index(datos&#x5B;i]&#x5B;1])\n        valor = datos&#x5B;i]&#x5B;2]\n        matriz&#x5B;f,c] = valor\n        \n    return(matriz)\n\ndef mejoresJuegos(nomArchivo, categoria, decada):\n    indices  = juegosConsolas(nomArchivo,\n                              categoria,\n                              decada)\n    matriz   = crearMatriz(nomArchivo,\n                           categoria,\n                           decada)\n    subtotal = np.sum(matriz, axis=0)\n    conteo   = np.count_nonzero(matriz,axis=0)\n    prom = subtotal\/conteo\n    \n    indicesMax = prom.argsort()&#x5B;-5::]\n    n = len(indicesMax)\n\n    narchivo = 'Mejores.txt'\n    archivo = open(narchivo,'w')\n    for i in range(0,n,1):\n        cual = indicesMax&#x5B;i]\n        linea = indices&#x5B;1]&#x5B;cual] + ',' + str(prom&#x5B;cual]) + '\\n'\n        archivo.write(linea)\n    archivo.close()\n    \n    respuesta = 'archivo creado'\n    return(respuesta)\n\ndef colecciones(nomArchivo, palabras):\n    respuesta = &#x5B;]\n    \n    archivo = open(nomArchivo,'r')\n    # encabezado\n    linea = archivo.readline()\n\n    # primera linea de datos\n    linea = archivo.readline()\n\n    while not(linea==''):\n        linea  = linea.strip('\\n')\n        partes = linea.split(',')\n        lista  = partes&#x5B;4].split(';')\n        categ  = lista&#x5B;0]\n        tags   = lista&#x5B;1:]\n        if (palabras == tags):\n            if not(njuego  in respusta):\n                respuesta.append(njuego)\n    \n    return(respuesta)\n\n# PROGRAMA ---------------------------\n# INGRESO\nnomArchivo = 'videojuegos.csv'\ncategoria  = 'RPG'\ndecada = 80\n\n# PROCEDIMIENTO\nrespuesta1 = juegosConsolas(nomArchivo, categoria, decada)\nrespuesta2 = crearMatriz(nomArchivo, categoria, decada)\nrespuesta3 = mejoresJuegos(nomArchivo, categoria, decada)\n\n# SALIDA\nprint('juegos y consolas de: ', decada, categoria)\nprint(respuesta1&#x5B;0])\nprint(respuesta1&#x5B;1])\nprint('matriz: ')\nprint(respuesta2)\nprint('seleccionados: ')\nprint(respuesta3)\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2017TII_T2 biblioteca videojuegos Propuesta de soluci\u00f3n en Python: archivo de prueba: videojuegos.csv<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-ejemplos","format":"standard","meta":{"footnotes":""},"categories":[143],"tags":[58,157],"class_list":["post-5198","post","type-post","status-publish","format-standard","hentry","category-fp-s3eva20","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=5198"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5198\/revisions"}],"predecessor-version":[{"id":23759,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5198\/revisions\/23759"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=5198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=5198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=5198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}