Skip to content

Instantly share code, notes, and snippets.

@variux
Last active February 8, 2019 15:33
Show Gist options
  • Save variux/7f0234d435cc785cabb343cf345623fe to your computer and use it in GitHub Desktop.
Save variux/7f0234d435cc785cabb343cf345623fe to your computer and use it in GitHub Desktop.
Buscaminas [Proyecto hecho para Valeria Delgado]
import random
import csv
#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
save_csv(buscaminas, "matriz.csv")
print("Gracias por jugar Buscaminas")
#Carga Matriz con números
def llenarMatriz ():
for i in range (0,10):
fila = []
for j in range (0,10):
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 < 10 and num2 < 10) 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 < 10 and num2 <10 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
def save_csv(matriz,rutaArchivo):
with open(rutaArchivo, 'w') as csvfile:
escritorCsv = csv.writer(csvfile)
escritorCsv.writerows(matriz)
return 0
#Imprime Matriz
def imprimeMatriz (columna, fila):
#Filas
for i in range (0,10):
#Columnas
for j in range (0,10):
#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