Ejercicios: 3Eva2014TI_T4 Función siembra

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:
| 0 | 4 | 4 | 4 | 4 | 4 | 4 | 0 |
| 0 | 4 | 4 | 4 | 4 | 4 | 4 | 0 |
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
| 0 | 4 | 4 | 4 | 0 | 5 | 5 | 1 |
| 0 | 4 | 4 | 4 | 4 | 4 | 4 | 1 |
- 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)