{"id":5690,"date":"2015-01-02T08:00:09","date_gmt":"2015-01-02T13:00:09","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=5690"},"modified":"2026-09-22T09:03:23","modified_gmt":"2026-09-22T14:03:23","slug":"s3eva2014ti_t3-juego-poli-mancala","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s3eva20\/s3eva2014ti_t3-juego-poli-mancala\/","title":{"rendered":"s3Eva2014TI_T3 Juego Poli-Mancala"},"content":{"rendered":"\n<p><em><strong>Ejercicios<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-3eva20\/3eva2014ti_t3-juego-poli-mancala\/\" data-type=\"post\" data-id=\"2667\">3Eva2014TI_T3 Juego Poli-Mancala<\/a><\/p>\n\n\n\n<p>Propuesta de soluci\u00f3n en <strong>Python<\/strong>:<\/p>\n\n\n\n<p>El tema pide realizar el programa usando la funci\u00f3n siembra del tema 4. Por lo que la funci\u00f3n se califica aparte.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; first-line: 3; highlight: [6,34]; title: ; notranslate\" title=\"\">\nimport numpy as np\n\n# funcion siembra del tema 4\ndef siembra(mancala,jugador,casilla):\n    tamano = np.shape(mancala)\n    m = tamano&#x5B;1]\n    fila = jugador\n    # Selecciona el movimiento del contador\n    if (fila == 0):\n        mueve = 1\n    else:\n        mueve = -1\n\n    # Recoge las fichas\n    fichas = mancala&#x5B;fila,casilla]\n    mancala&#x5B;fila,casilla] = 0\n    \n    # inicia la siembra\n    while not(fichas==0):\n        casilla = casilla + mueve\n        if (casilla&gt;=m):\n            casilla = m-1\n            fila = 1\n            mueve = -1 \n        if (casilla&lt;0):\n            casilla = 0\n            fila = 0\n            mueve = 1\n        mancala&#x5B;fila,casilla] = mancala&#x5B;fila,casilla]+1\n        fichas = fichas-1\n\n    return(mancala)\n<\/pre><\/div>\n\n\n<p>El programa inicializa los vectores y matrices para el juego<\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"274\" height=\"169\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/01\/mancala01.png\" alt=\"mancala tablero y fichas\" class=\"wp-image-17092\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Al inicio, se ubican 4 fichas en cada casilla excepto en los extremos izquierdo y derecho del tablero.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Tablero inicial:\nJugador1 &#091;0 4 4 4 4 4 4 0] Jugador2\n   0     &#091;0 4 4 4 4 4 4 0]    0<\/code><\/pre>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; first-line: 36; highlight: [39,40,41]; title: ; notranslate\" title=\"\">\n# PROGRAMA PARA EL JUEGO ---------------\n# inicializa tablero\nmancala = np.ones(shape=(2,8),dtype=int)\nmancala = mancala*4 # casillas con 4 fichas\nmancala&#x5B;:,0] = 0  # ceros en los extremos\nmancala&#x5B;:,7] = 0\ncasa1 = 0\ncasa2 = 0\nprint('  1 2 3 4 5 6 7 8')\nprint(mancala)\n<\/pre><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Se juega por turnos alternados para realizar un movimiento de <em><strong>siembra<\/strong><\/em>.<\/li>\n\n\n\n<li>Suponga que existe la funci\u00f3n <em>siembra<\/em>(<strong>tablero<\/strong>, fila, columna) que devuelve el <strong>tablero<\/strong> modificado.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Jugador 1. \u00bfCasilla siembra?: 5\nJugador1 &#091;0 4 4 4 0 5 5 1] Jugador2\n   0     &#091;0 4 4 4 4 4 4 1]    2<\/code><\/pre>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: plain; first-line: 49; highlight: [49,54]; title: ; notranslate\" title=\"\">\n    jugador = 1\n    print(' Juega 1')\n    casilla = input('\u00bfCual casilla?:')\n    while not(casilla&amp;gt;'1' and casilla&amp;lt;'8'):\n        casilla = input('\u00bfCual casilla?:')\n    mancala = siembra(mancala,jugador-1, int(casilla)-1)\n    print('  1 2 3 4 5 6 7 8')\n    print(mancala)\n<\/pre><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>El jugador que acumule m\u00e1s de la mitad de fichas en las casillas de su extremo (Casa) gana el juego.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; highlight: [47]; title: ; notranslate\" title=\"\">\nwhile not(casa1&gt;24 or casa2&gt;24):\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n\n<p>Integrando las partes en un solo algoritmo se tiene:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# ICM00794-Fundamentos de Computaci\u00f3n - FCNM-ESPOL\n# 3Eva_IT2014_T3 Juego Poli-Mancala\nimport numpy as np\n\n# funcion siembra del tema 4\ndef siembra(mancala,jugador,casilla):\n    tamano = np.shape(mancala)\n    m = tamano&#x5B;1]\n    fila = jugador\n    # Selecciona el movimiento del contador\n    if (fila == 0):\n        mueve = 1\n    else:\n        mueve = -1\n\n    # Recoge las fichas\n    fichas = mancala&#x5B;fila,casilla]\n    mancala&#x5B;fila,casilla] = 0\n    \n    # inicia la siembra\n    while not(fichas==0):\n        casilla = casilla + mueve\n        if (casilla&gt;=m):\n            casilla = m-1\n            fila = 1\n            mueve = -1 \n        if (casilla&lt;0):\n            casilla = 0\n            fila = 0\n            mueve = 1\n        mancala&#x5B;fila,casilla] = mancala&#x5B;fila,casilla]+1\n        fichas = fichas-1\n\n    return(mancala)\n\n# PROGRAMA PARA EL JUEGO ---------------\n# inicializa tablero\nmancala = np.ones(shape=(2,8),dtype=int)\nmancala = mancala*4 # casillas con 4 fichas\nmancala&#x5B;:,0] = 0  # ceros en los extremos\nmancala&#x5B;:,7] = 0\ncasa1 = 0\ncasa2 = 0\nprint('  1 2 3 4 5 6 7 8')\nprint(mancala)\n\nwhile not(casa1&gt;24 or casa2&gt;24):\n    \n    jugador = 1\n    print(' Juega 1')\n    casilla = input('\u00bfCual casilla?:')\n    while not(casilla&gt;'1' and casilla&lt;'8'):\n        casilla = input('\u00bfCual casilla?:')\n    mancala = siembra(mancala,jugador-1, int(casilla)-1)\n    print('  1 2 3 4 5 6 7 8')\n    print(mancala)\n\n    jugador = 2\n    print(' Juega 2')\n    casilla = input('\u00bfCual casilla?:')\n    while not(casilla&gt;'1' and casilla&lt;'8'):\n        casilla = input('\u00bfCual casilla?:')\n    mancala = siembra(mancala,jugador-1, int(casilla)-1)\n    casa1 = mancala&#x5B;0,0]+mancala&#x5B;1,0]\n    casa2 = mancala&#x5B;0,7]+mancala&#x5B;1,7]\n    print('  1 2 3 4 5 6 7 8')\n    print(mancala)\n\n# Muestra ganadores\nif (casa1&gt;casa2):\n    print(' Gana Jugador 1')\nelse:\n    print(' Gana Jugador 2')\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicios: 3Eva2014TI_T3 Juego Poli-Mancala Propuesta de soluci\u00f3n en Python: El tema pide realizar el programa usando la funci\u00f3n siembra del tema 4. Por lo que la funci\u00f3n se califica aparte. El programa inicializa los vectores y matrices para el juego Algoritmo en Python Integrando las partes en un solo algoritmo se tiene:<\/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-5690","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\/5690","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=5690"}],"version-history":[{"count":6,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5690\/revisions"}],"predecessor-version":[{"id":25926,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5690\/revisions\/25926"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=5690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=5690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=5690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}