s3Eva2014TI_T4 Función siembra

Ejercicios: 3Eva2014TI_T4 Función siembra

mancala tablero y fichas

Realice una función siembra(tablero, fila, columna) que en un tablero de 2x8, siguiendo el sentido de las manecillas del reloj, distribuye la cantidad de fichas en la casilla indicada por fila y columna, equitativamente una a una entre las casillas contiguas.

Tablero inicial:
04444440
04444440

Observe que dependiendo de la fila, la siguiente casilla es o a la izquierda o a la derecha de donde estaba.

Al redistribuir el valor:

  • Se empieza a partir de la siguiente casilla seleccionada.
Jugador 1. ¿Casilla siembra?: 5

iteración

04440551
04444441
  • Si la siguiente casilla está fuera del tablero, se cambia de fila, invierte el sentido entre izquierda o derecha, y se corrige regresando al tablero en el mismo extremo.
    fila = jugador
    # Selecciona el movimiento del contador
    if (fila == 0):
        mueve = 1
    else:
        mueve = -1
  • Se recogen las fichas de la casilla seleccionada
    # Recoge las fichas
    fichas = mancala[fila,casilla]
    mancala[fila,casilla] = 0
  • Se mueve a la siguiente casilla

Repitiendo el proceso hasta que no queden fichas seleccionadas.

    # inicia la siembra
    while not(fichas==0):
        casilla = casilla + mueve
        if (casilla>=m):
            casilla = m-1
            fila = 1
            mueve = -1 
        if (casilla<0):
            casilla = 0
            fila = 0
            mueve = 1
        mancala[fila,casilla] = mancala[fila,casilla]+1
        fichas = fichas-1

Algoritmo en Python

Integrando las partes, la función complementa el programa requerido en tema 3

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IT2014_T4 Juego Poli-Mancala
import numpy as np

# funcion siembra
def siembra(mancala,jugador,casilla):
    tamano = np.shape(mancala)
    m = tamano[1]
    fila = jugador
    # Selecciona el movimiento del contador
    if (fila == 0):
        mueve = 1
    else:
        mueve = -1

    # Recoge las fichas
    fichas = mancala[fila,casilla]
    mancala[fila,casilla] = 0
    
    # inicia la siembra
    while not(fichas==0):
        casilla = casilla + mueve
        if (casilla>=m):
            casilla = m-1
            fila = 1
            mueve = -1 
        if (casilla<0):
            casilla = 0
            fila = 0
            mueve = 1
        mancala[fila,casilla] = mancala[fila,casilla]+1
        fichas = fichas-1

    return(mancala)

Ejercicios resueltos/Ejemplos por año

Ejemplos 1ra Evaluación

1ra Eva 2020-2011

1ra Eva 2010-2001

Ejemplos 2da Evaluación

2da Eva 2020-2011

2da Eva 2010-2001

Ejemplos 3ra Evaluación

3ra Eva 2020-2011

3ra Eva 2010-2001