Created
November 15, 2018 03:58
-
-
Save variux/6a094c5b6446f463aeb86a8503b6c9dd to your computer and use it in GitHub Desktop.
buscaminas_corregido.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import random | |
#Arreglo de buscaminas | |
buscaminas = [] | |
#Puntaje de jugadores | |
jugador1 = 0 | |
jugador2 = 0 | |
#Pasa turnos | |
turno = True | |
#Coordenadas del jugador 1 | |
lcxy_one = [] | |
#Coordenadas del jugador 2 | |
lcxy_two = [] | |
#Carga mensaje de bienvenido | |
def Bienvenido (): | |
print("Bienvenido al Buscaminas") | |
#Carga Jego | |
def Juego (): | |
#Cuenta que llegue a 4 | |
turnos = 0 | |
#Ciclo con turnos | |
while (turnos < 4): | |
#Carga Metodo Matriz para jugar | |
Matriz() | |
#Agrega un turno | |
turnos += 1 | |
#Despues de contar hasta cuatro pregunta que si quiere seguir jugando | |
print("¿Desea seguir jugando? 1 = Sí -- 2 = No") | |
opcion = input() | |
#Carga en caso de seguir jugando | |
if (int(opcion) == 1): | |
Juego() | |
else: | |
#Termina el juego | |
print("Gracias por jugar Buscaminas") | |
#Carga Matriz con números | |
def llenarMatriz (): | |
for i in range (0,5): | |
fila = [] | |
for j in range (0,5): | |
fila.append(random.randint(0,9)) | |
buscaminas.append(fila) | |
def Matriz (): | |
#Carga valores globales | |
global turno | |
global jugador1 | |
global jugador2 | |
#Turno de jugador 1 | |
if turno: | |
#Solicita coordenada | |
print("Jugador 1, Favor Ingrese Coordenada: ", end = " ") | |
coordenada = input() | |
#Divide coordenada | |
coordenadasSeparadas = coordenada.split(",") | |
#Convierte coordenadas a int | |
num1 = int(coordenadasSeparadas[0]) - 1 | |
num2 = int(coordenadasSeparadas[1]) - 1 | |
#Una variable de tipo flag para determinar si el jugador dos ya usó esa coordenada, si lo hizo le pedimos otra | |
approve_movement = None | |
#Guardamos las coordenadas del jugador 1 en su respectiva lista | |
lcxy_one.append([num1, num2]) | |
#Recorremos la lista del jugador dos | |
for coordinate in lcxy_two: | |
#Para ver si coincide con las coordenadas que el jugador 1 está introduciendo | |
if coordinate[0] == num1 and coordinate[1] == num2: | |
#Si son las mismas entonces no lo dejamos avanzar | |
#ya que hay una condicion mas adelante que exige que approve momento sea verdadero | |
approve_movement = False | |
print("Lo sentimos, el jugador numero 2 ya ha escogido esa coordenada ") | |
else: | |
#Si las coordenadas no existen entonces seguimos con el proceso normal | |
approve_movement = True | |
#La primera vez la lista esta vacía por ende no la recorre, si esta vacía entonces aprobamos el movimiento | |
if not lcxy_two: | |
approve_movement = True | |
#Verificamos que no se salgan las coordenadas de la matriz | |
if (num1 < 5 and num2 < 5) and approve_movement == True: | |
#Carga ImprimeMatriz, que imprime la matriz (redundancia jeje) | |
imprimeMatriz(num1, num2) | |
#Después de cargar matriz, si el número es par, suma punto | |
if ((buscaminas[num1][num2] % 2) == 0 ): | |
jugador1 += 1 | |
print("Puntaje Jugador 1: " + str(jugador1) + "\nPuntaje Jugador 2: " + str(jugador2)) | |
#Cambia booleano para turno del otro jugador | |
turno = False | |
else: | |
#Si se sale entonces se las volvemos a pedir seteando el flag en true que corresponde al jugador uno | |
turno = True | |
#Mismo procedimiento con Jugador 2, excepto que cuenta puntos por números | |
#impares | |
else: | |
print("Jugador 2, Favor Ingrese Coordenada: ") | |
coordenada = input() | |
coordenadasSeparadas = coordenada.split(",") | |
num1 = int(coordenadasSeparadas[0]) - 1 | |
num2 = int(coordenadasSeparadas[1]) - 1 | |
approve_movement = None | |
lcxy_two.append([num1, num2]) | |
for coordinate in lcxy_one: | |
if coordinate[0] == num1 and coordinate[1] == num2: | |
approve_movement = False | |
print("Lo sentimos, el jugador numero 1 ya ha escogido esa coordenada ") | |
else: | |
approve_movement = True | |
if not lcxy_one: | |
approve_movement = True | |
if num1 < 5 and num2 <5 and approve_movement == True: | |
imprimeMatriz(num1, num2) | |
if ((buscaminas[num1][num2] % 2) == 1 ): | |
jugador2 += 1 | |
turno = True | |
print("Puntaje Jugador 1: " + str(jugador1) + "\nPuntaje Jugador 2: " + str(jugador2)) | |
else: | |
turno = False | |
#Imprime Matriz | |
def imprimeMatriz (columna, fila): | |
#Filas | |
for i in range (0,5): | |
#Columnas | |
for j in range (0,5): | |
#Imprime numero en coordinada brindada en parametros | |
if ((columna == i) and (fila == j)): | |
print("[" + str(buscaminas[i][j]) + "]", end = " ") | |
#Caso contario, lo imprime vacío | |
else: | |
print("[" + " " + "]", end = " ") | |
print("\n") | |
#Llena matriz y ejecuta juego | |
llenarMatriz() | |
Bienvenido() | |
Juego() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment