Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/10/2011, 20:04
AlanFC
 
Fecha de Ingreso: septiembre-2011
Mensajes: 42
Antigüedad: 13 años, 2 meses
Puntos: 3
Buscaminas megabasico

Bueno, estaba desarrollando un ejercicio, que trataba de realizar un buscaminas bien basico, y como veran en el codigo, bastante molesto y con 0 jugabilidad jaja, pero la idea era poner en practica las matrices.

Si pudieran revisarlo, y decirme que tal les parece la forma en que lo desarrolle, y si se les viene otras formas de hacerlo, o proponerme como reto algo que le falte al que hize. Pero repito, con codigos basicos...

Código Python:
Ver original
  1. from random import randrange
  2. def cuenta (x,y):
  3.     suma = 0
  4.     for a in range (x-1,x+2):
  5.         for b in range (y-1,y+2):
  6.             if a>=0 and a<=l_matriz-1 and b>=0 and b<=l_matriz-1:
  7.                 if matriz[a][b]=="*":
  8.                     suma = suma + 1
  9.     return suma
  10. def print_matriz (a):
  11.     print "\n"
  12.     for x in a:
  13.         for y in x:
  14.             print y," ",
  15.         print "\n"
  16. print "Reglas:"
  17. print "     Ganas"
  18. print "         a) Si descubres la posicion de todas las minas"
  19. print "     Pierdes:"
  20. print "         a) Si pisas una mina"
  21. print "         b) Si fallas al indicar la posicion de una mina"
  22. print "Configuracion:"
  23. l_matriz = input (" 1- Ingresa largo:    ")
  24. minas = input ("    2- Ingresa cantidad de minas:   ")
  25.  
  26. #Crear matriz oculta
  27. matriz = []
  28. for A in range (l_matriz):
  29.     matriz2 = []
  30.     for B in range (l_matriz):
  31.         matriz2.append (0)
  32.     matriz.append (matriz2)
  33. #Crear matriz visible
  34. matriz2 = []
  35. for A in range (l_matriz):
  36.     matriz3 = []
  37.     for B in range (l_matriz):
  38.         matriz3.append ("#")
  39.     matriz2.append (matriz3)
  40. #Rellenar matriz con minas
  41. suma = 0
  42. while suma!=minas:
  43.     random1 = randrange(0,l_matriz)
  44.     random2 = randrange(0,l_matriz)
  45.     if matriz[random1][random2] != '*':
  46.         matriz[random1][random2] = '*'
  47.         suma = suma + 1
  48. #Conteo de minas
  49. for C in range (l_matriz):
  50.     for D in range (l_matriz):
  51.         e = cuenta(C,D)
  52.         if matriz[C][D]!="*":
  53.             matriz[C][D]=e
  54. #Desarrollo del juego
  55. suma = 0
  56. while suma!=minas:
  57.     print "\n"
  58.     print "---------------------------------------------------------------------"
  59.     z = raw_input ("Escribe MINA en caso que encuentres una o en caso contrario presiona Enter  ")
  60.     if z=="MINA":
  61.         print "Ingresa coordenadas de un lugar con minas"
  62.         y2 = input ("   Ingresa coordenada x:  ") -1
  63.         x2 = input ("   Ingresa coordenada y:  ") -1
  64.         if matriz[x2][y2]=="*":
  65.             suma = suma + 1
  66.             matriz2[x2][y2]="*"
  67.             if suma==minas:
  68.                 print_matriz (matriz2)
  69.                 print "Felicidades. Has ganado"
  70.                 break
  71.         else:
  72.             print_matriz (matriz)
  73.             print "Has perdido"
  74.             break
  75.     print "Ingrese coordenadas de un lugar sin minas"
  76.     y = input ("    Ingresa coordenada x:   ") -1
  77.     x = input ("    Ingresa coordenada y:   ") -1
  78.     if matriz[x][y]!="*":
  79.         matriz2[x][y]=matriz[x][y]
  80.     else:
  81.         print_matriz (matriz)
  82.         print "Has perdido"
  83.         break
  84.     print_matriz (matriz2)
  85.     print "Aun te quedan",minas-suma,"minas por descubrir"
  86. print "\n"
  87. asdf = input ("Apreta un boton para cerrar")

Exitos!
__________________
"Porque nada se...
quiero saberlo todo"