Guest User

Untitled

a guest
Nov 18th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.29 KB | None | 0 0
  1. import random
  2. import csv
  3. #Arreglo de buscaminas
  4. buscaminas = []
  5.  
  6. #Puntaje de jugadores
  7. jugador1 = 0
  8. jugador2 = 0
  9.  
  10. #Pasa turnos
  11. turno = True
  12. #Coordenadas del jugador 1
  13. lcxy_one = []
  14.  
  15. #Coordenadas del jugador 2
  16. lcxy_two = []
  17.  
  18.  
  19. #Carga mensaje de bienvenido
  20. def Bienvenido ():
  21. print("Bienvenido al Buscaminas")
  22.  
  23. #Carga Jego
  24. def Juego ():
  25.  
  26. #Cuenta que llegue a 4
  27. turnos = 0
  28.  
  29. #Ciclo con turnos
  30. while (turnos < 4):
  31.  
  32. #Carga Metodo Matriz para jugar
  33. Matriz()
  34.  
  35. #Agrega un turno
  36. turnos += 1
  37.  
  38. #Despues de contar hasta cuatro pregunta que si quiere seguir jugando
  39. print("¿Desea seguir jugando? 1 = Sí -- 2 = No")
  40. opcion = input()
  41.  
  42. #Carga en caso de seguir jugando
  43. if (int(opcion) == 1):
  44. Juego()
  45. else:
  46. #Termina el juego
  47. save_csv(buscaminas, "matriz.csv")
  48. print("Gracias por jugar Buscaminas")
  49.  
  50. #Carga Matriz con números
  51. def llenarMatriz ():
  52. for i in range (0,10):
  53. fila = []
  54. for j in range (0,10):
  55. fila.append(random.randint(0,9))
  56. buscaminas.append(fila)
  57.  
  58. def Matriz ():
  59.  
  60. #Carga valores globales
  61. global turno
  62. global jugador1
  63. global jugador2
  64.  
  65. #Turno de jugador 1
  66. if turno:
  67.  
  68. #Solicita coordenada
  69. print("Jugador 1, Favor Ingrese Coordenada: ", end = " ")
  70. coordenada = input()
  71.  
  72. #Divide coordenada
  73. coordenadasSeparadas = coordenada.split(",")
  74.  
  75. #Convierte coordenadas a int
  76. num1 = int(coordenadasSeparadas[0]) - 1
  77. num2 = int(coordenadasSeparadas[1]) - 1
  78. #Una variable de tipo flag para determinar si el jugador dos ya usó esa coordenada, si lo hizo le pedimos otra
  79. approve_movement = None
  80. #Guardamos las coordenadas del jugador 1 en su respectiva lista
  81. lcxy_one.append([num1, num2])
  82. #Recorremos la lista del jugador dos
  83. for coordinate in lcxy_two:
  84. #Para ver si coincide con las coordenadas que el jugador 1 está introduciendo
  85. if coordinate[0] == num1 and coordinate[1] == num2:
  86. #Si son las mismas entonces no lo dejamos avanzar
  87. #ya que hay una condicion mas adelante que exige que approve momento sea verdadero
  88. approve_movement = False
  89. print("Lo sentimos, el jugador numero 2 ya ha escogido esa coordenada ")
  90. else:
  91. #Si las coordenadas no existen entonces seguimos con el proceso normal
  92. approve_movement = True
  93. #La primera vez la lista esta vacía por ende no la recorre, si esta vacía entonces aprobamos el movimiento
  94. if not lcxy_two:
  95. approve_movement = True
  96. #Verificamos que no se salgan las coordenadas de la matriz
  97. if (num1 < 10 and num2 < 10) and approve_movement == True:
  98.  
  99. #Carga ImprimeMatriz, que imprime la matriz (redundancia jeje)
  100. imprimeMatriz(num1, num2)
  101.  
  102. #Después de cargar matriz, si el número es par, suma punto
  103. if ((buscaminas[num1][num2] % 2) == 0 ):
  104. jugador1 += 1
  105. print("Puntaje Jugador 1: " + str(jugador1) + "\nPuntaje Jugador 2: " + str(jugador2))
  106.  
  107. #Cambia booleano para turno del otro jugador
  108. turno = False
  109. else:
  110. #Si se sale entonces se las volvemos a pedir seteando el flag en true que corresponde al jugador uno
  111. turno = True
  112.  
  113. #Mismo procedimiento con Jugador 2, excepto que cuenta puntos por números
  114. #impares
  115. else:
  116. print("Jugador 2, Favor Ingrese Coordenada: ")
  117. coordenada = input()
  118. coordenadasSeparadas = coordenada.split(",")
  119.  
  120. num1 = int(coordenadasSeparadas[0]) - 1
  121. num2 = int(coordenadasSeparadas[1]) - 1
  122. approve_movement = None
  123. lcxy_two.append([num1, num2])
  124. for coordinate in lcxy_one:
  125. if coordinate[0] == num1 and coordinate[1] == num2:
  126. approve_movement = False
  127. print("Lo sentimos, el jugador numero 1 ya ha escogido esa coordenada ")
  128. else:
  129.  
  130. approve_movement = True
  131.  
  132. if not lcxy_one:
  133. approve_movement = True
  134. if num1 < 10 and num2 <10 and approve_movement == True:
  135. imprimeMatriz(num1, num2)
  136. if ((buscaminas[num1][num2] % 2) == 1 ):
  137. jugador2 += 1
  138. turno = True
  139. print("Puntaje Jugador 1: " + str(jugador1) + "\nPuntaje Jugador 2: " + str(jugador2))
  140. else:
  141. turno = False
  142.  
  143. def save_csv(matriz,rutaArchivo):
  144.  
  145. with open(rutaArchivo, 'w') as csvfile:
  146. escritorCsv = csv.writer(csvfile)
  147. escritorCsv.writerows(matriz)
  148. return 0
  149. #Imprime Matriz
  150. def imprimeMatriz (columna, fila):
  151.  
  152. #Filas
  153. for i in range (0,10):
  154.  
  155. #Columnas
  156. for j in range (0,10):
  157.  
  158. #Imprime numero en coordinada brindada en parametros
  159. if ((columna == i) and (fila == j)):
  160. print("[" + str(buscaminas[i][j]) + "]", end = " ")
  161.  
  162. #Caso contario, lo imprime vacío
  163. else:
  164. print("[" + " " + "]", end = " ")
  165.  
  166. print("\n")
  167.  
  168. #Llena matriz y ejecuta juego
  169. llenarMatriz()
  170. Bienvenido()
  171. Juego()
Add Comment
Please, Sign In to add comment