{"id":7267,"date":"2018-11-30T07:22:13","date_gmt":"2018-11-30T12:22:13","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=7267"},"modified":"2026-10-10T07:18:23","modified_gmt":"2026-10-10T12:18:23","slug":"s1eva2018tii_t2-juego-conocimiento-ahorcado","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s1eva20\/s1eva2018tii_t2-juego-conocimiento-ahorcado\/","title":{"rendered":"s1Eva2018TII_T2 Juego conocimiento (Ahorcado)"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-1eva20\/1eva2018tii_t2-juego-conocimiento-ahorcado\/\" data-type=\"post\" data-id=\"7259\">1Eva2018TII_T2 Juego conocimiento (Ahorcado)<\/a><\/p>\n\n\n\n<p>Propuesta de soluci\u00f3n al ejercicio.<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>Estado del juego:  F***\n adivine una letra: C\n Adivinaste...C\n\nEstado del juego:  FC**\nturno: 1\nfallas:  0\n adivine una letra: M\n Adivinaste...M\n\nEstado del juego:  FC*M\nturno: 2\nfallas:  0\n adivine una letra: A\n NO es una letra de palabra...<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>Estado del juego:  FC*M\nturno: 3\nfallas:  1\n adivine una letra: N\n Adivinaste...N\n\nEstado del juego:  FCNM\nturno: 4\nfallas:  1\nFelicitaciones, adivin\u00f3: FCNM\n&gt;&gt;&gt; <\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>Se inicia con la selecci\u00f3n aleatoria de la palabra secreta.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 32; highlight: [34]; title: ; notranslate\" title=\"\">\npalabras = &#x5B;'ESPOL','FCNM','FIEC','FIMCP','FICT']\nn = len(palabras)\nsorteo  = int(rnd.random()*n)+0\nsecreta = palabras&#x5B;sorteo]\n<\/pre><\/div>\n\n\n<p>Luego contin\u00faa con el sorteo de la letra <code>pista<\/code>, verificando que sea consonante.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 40; highlight: [43,46]; title: ; notranslate\" title=\"\">\n# una letra como pista\nconsonante = 'BCDFGHJKLMNPQRSTVWXYZ'\nm = len(secreta)\nsorteo = int(rnd.random()*m)+0\npista = secreta&#x5B;sorteo]\nwhile not(pista in consonante):\n    sorteo = int(rnd.random()*m)+0\n    pista  = secreta&#x5B;sorteo]\n<\/pre><\/div>\n\n\n<p>Siguiendo las sugerencias, para dividir y simplificar el problema, primero se crean las funciones: <code>escondeletras(secreta)<\/code> y <code>cambialetra(secreta,letra,estado)<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 9; title: ; notranslate\" title=\"\">\ndef escondeletras(secreta):\n    estado = ''\n    n = len(secreta)\n    i = 0\n    while not(i&gt;=n):\n        estado = estado + '*'\n        i = i + 1 \n    return(estado)\n<\/pre><\/div>\n\n\n<p>Se actualiza la palabra <code>secreta<\/code> con la letra <code>pista<\/code>, y se inicia el juego.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 49; title: ; notranslate\" title=\"\">\n# actualiza estado del juego\nestado = cambialetra(secreta,pista,estado)\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# CCPG1001 Fundamentos de Programaci\u00f3n FIEC-ESPOL\n# 1Eva_IIT2018_T2 Juego conocimiento (Ahorcado)\n# tarea: indiferente usar may\u00fasculas\/min\u00fasculas\n#        contar solo letras adivinadas, no repetidas\n\nimport numpy as np\nimport random as rnd\n\ndef escondeletras(secreta):\n    estado = ''\n    n = len(secreta)\n    i = 0\n    while not(i&gt;=n):\n        estado = estado + '*'\n        i = i + 1 \n    return(estado)\n\ndef cambialetra(secreta,letra,estado):\n    nuevoestado = ''\n    n = len(secreta)\n    i = 0\n    while not(i&gt;=n):\n        if (secreta&#x5B;i]==letra):\n            nuevoestado = nuevoestado + letra\n        else:\n            nuevoestado = nuevoestado + estado&#x5B;i]\n        i = i + 1\n    return(nuevoestado)\n\n# PROGRAMA JUEGO\n# selecciona secreta\npalabras = &#x5B;'ESPOL','FCNM','FIEC','FIMCP','FICT']\nn = len(palabras)\nsorteo  = int(rnd.random()*n)+0\nsecreta = palabras&#x5B;sorteo]\n\n# estado inicial del juego\nestado = escondeletras(secreta)\n\n# una letra como pista\nconsonante = 'BCDFGHJKLMNPQRSTVWXYZ'\nm = len(secreta)\nsorteo = int(rnd.random()*m)+0\npista = secreta&#x5B;sorteo]\nwhile not(pista in consonante):\n    sorteo = int(rnd.random()*m)+0\n    pista  = secreta&#x5B;sorteo]\n    \n# actualiza estado del juego\nestado = cambialetra(secreta,pista,estado)\n\n# Control del Juego\nturnomax = 2*m\ngana  = 1\nfalla = 0\nprint('Estado del juego: ', estado)\n\nturno = 1\nwhile not(turno&gt;turnomax or gana==m):\n    letra = input(' adivine una letra: ')\n    if (letra in secreta):\n        gana    =  gana +1\n        estado  = cambialetra(secreta,letra, estado)\n        mensaje = ' Adivinaste...' + letra\n    else:\n        falla   = falla + 1\n        mensaje = ' NO es una letra de palabra...'\n    \n    print(mensaje)\n    print()\n    print('Estado del juego: ', estado)\n    print('turno:', turno)\n    print('fallas: ', falla)\n    turno = turno + 1\n\nif (turno&lt;=turnomax and gana==m):\n    mensaje = 'Felicitaciones, adivin\u00f3: ' + secreta\nelse:\n    mensaje = 'lo lamento, perdi\u00f3..., la palabra era: '\n    mensaje = mensaje + secreta\n\n# SALIDA\nprint(mensaje)\n<\/pre><\/div>\n\n\n<p>Recuerde que se ha dejado como tarea, realizar las instrucciones para cumplir que:<\/p>\n\n\n\n<p>- sea indiferente usar may\u00fasculas\/min\u00fasculas<br>- contar solo letras adivinadas, no repetidas<\/p>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-evalua\/fp-2e05\/2eva2005ti_t3-adivina-palabra-ahorcado\/\" data-type=\"post\" data-id=\"2889\">2Eva2005TI_T3 Adivina palabra (ahorcado)<\/a><\/p>\n\n\n\n<p>Soluci\u00f3n propuesta: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-ejemplos\/fp-s2e10\/s2eva2005ti_t3-adivina-palabra-ahorcado\/\" data-type=\"post\" data-id=\"5688\">s2Eva2005TI_T3 Adivina palabra (ahorcado)<\/a><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Manejo de Texto como Cadenas de caracteres en Python. Ejercicio: Adivina palabra, Ahorcado\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/gWarFana9a4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2018TII_T2 Juego conocimiento (Ahorcado) Propuesta de soluci\u00f3n al ejercicio. Se inicia con la selecci\u00f3n aleatoria de la palabra secreta. Luego contin\u00faa con el sorteo de la letra pista, verificando que sea consonante. Siguiendo las sugerencias, para dividir y simplificar el problema, primero se crean las funciones: escondeletras(secreta) y cambialetra(secreta,letra,estado). Se actualiza la palabra secreta [&hellip;]<\/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":[130],"tags":[58,157],"class_list":["post-7267","post","type-post","status-publish","format-standard","hentry","category-fp-s1eva20","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7267","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=7267"}],"version-history":[{"count":7,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7267\/revisions"}],"predecessor-version":[{"id":26194,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7267\/revisions\/26194"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=7267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=7267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=7267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}