Hola gente 👋, acá Carlos Padilla se reporta, hoy quiero presentar como proyecto final de este curso un generador de tableros para Tick-tack-toe, Ajedrez o Damas Chinas. Intente utilizar todo lo aprendido en este curso, cabe recalcar que uso algunas cosas aun no aprendidas si eres un iniciante en python como el método denominado “.join” y list comprehension. Si deseas usarlo sigue los siguientes pasos:
- Paso 1
Primero que todo declara la siguiente función que generara una tabla llena de números consecutivos (solo es un ejemplo, se puede editar). Usa list comprehension y admite un argumento de tipo entero, que es en si el numero de tanto columnas como filas.
#Python
def matrix_generator_nXn(n):
return [[j for j in range((i - 1) * n + 1, (i) * n + 1)] for i in range(1, n + 1)]
- Paso 2
Ahora usando la función recientemente declarada, asignale un valor a tu nueva variable board, esta sera tu tabla del tablero, que podrás modificar en caso de que por ejemplo un jugador haga un movimiento. En este caso tanto la tabla como su display seran 3*3:
board = matrix_generator_nXn(3)
- Paso 3
Como penultimo paso, define esta otra función que generará el display de la tabla recientemente hecha; aclaro generara el display en consola. Admite un argumento de tipo lista (una tabla) y genera el display a partir de bucles for:
def display_board(matrix):
board_display = "" #Esta variable almacenara al display del board
cant_rows = len(matrix)
x1 = "+---------" * cant_rows + "+"
x2 = "| " * cant_rows + "|"
for row in matrix:
x3 = "".join(["| " + str(element) + " " for element in row]) + "|" # Aquí van los elementos internos de la tabla
if matrix.index(row) == 0:
board_display += (x1+"\n"+x2+"\n"+x3+"\n"+x2+"\n"+x1+"\n") #Esta seria la fila inicial
elif matrix.index(row) == (cant_rows - 1):
board_display += (x2+"\n"+x3+"\n"+x2+"\n"+x1) # Y esta la fila final
else:
board_display += (x2+"\n"+x3+"\n"+x2+"\n"+x1+"\n")
print(board_display)
- Paso Final
Por ultimo, llama a la función recientemente declarada y pasa como argumento la tabla (board) generada en el paso 2; esta imprimira una especie de tablero:
display_board(board)
#Ejemplo:
# En el caso 3*3:
# +---------+---------+---------+
# | | | |
# | 1 | 2 | 3 |
# | | | |
# +---------+---------+---------+
# | | | |
# | 4 | 5 | 6 |
# | | | |
# +---------+---------+---------+
# | | | |
# | 7 | 8 | 9 |
# | | | |
# +---------+---------+---------+
Listo, espero que te haya encantado o que te haya sido de utilidad, eso es todo, chao 👋.
Curso de Fundamentos de Python
0 Comentarios
para escribir tu comentario