Proyecto Final del Seminario de Programación en Python.

Codigo

   1 #!/usr/bin/python
   2 # -*- coding: iso-8859-15 -*-
   3 
   4 """
   5 Juego - Buscaminas
   6 Autores: Jesús Benavies - Julian Narváez
   7 Docente: Rodrigo A. Carreño V. (rocarreno)
   8 """
   9 
  10 ################## buscanew.py
  11 
  12 from Tkinter import *#Importamos librerias Graficas
  13 import tkSimpleDialog
  14 import tkMessageBox
  15 class Tablero:#Creamos clase base principal
  16 
  17     tam=0
  18     ancho=0
  19     largo=0
  20     def __init__(self,t,a,l):#Constructor Parametrizado
  21         self.tam=t
  22         self.ancho=a
  23         self.largo=l
  24     def Dibujar(self):
  25         pass
  26 
  27 class Nivel_1(Tablero):#Clase Derivada
  28     num_min=0
  29     def __init__(self):#constructor por defecto
  30         self.num_min=0#Atributo para acumular puntaje
  31 
  32     def Dibujar_n1(self):#Metodd que dibuja Tablero de nivel 1
  33         def new():#Metodo que indica que caiste en una mina y da el puntaje
  34             tkMessageBox.showerror("PERDISTE","Usted ha caido en una mina")
  35             tkMessageBox.showinfo("SCORE",self.num_min)
  36         objeto=Tk()
  37         objeto.title('NIVEL 1')
  38         objeto.minsize(120,100)
  39         objeto.maxsize(120,100)
  40         for i in range(1,5):
  41             for j in range(1,5):#Generador del tablero
  42                 if (i==1 and j==4)or(i==2 and j==3)or(i==4 and j==2):#Generador de minas
  43                     b=Button(objeto,text='x',background="blue",width=3,height=1,command=new)
  44                     b.grid(row=i,column=j)
  45                 else:
  46                     b=Button(objeto,text='x',background="blue",width=3,height=1,command='')
  47                     b.grid(row=i,column=j)
  48                     if b["command"]!='None':#Acumulador de puntaje
  49                         self.num_min=self.num_min+1
  50         mainloop()
  51 
  52     def Dibujar_n2(self):#Metodd que dibuja Tablero de nivel 2
  53         def new():
  54             tkMessageBox.showerror("PERDISTE","Usted ha caido en una mina")
  55             tkMessageBox.showinfo("SCORE",self.num_min)
  56         objeto=Tk()
  57         objeto.title('NIVEL 2')
  58         objeto.minsize(140,120)
  59         objeto.maxsize(140,120)
  60         for i in range(1,6):
  61             for j in range(1,6):
  62                 if (i==3 and j==2)or(i==5 and j==1)or(i==4 and j==4)or(i==1 and j==3)or(i==5 and j==4)or(i==2 and j==3):
  63                     b=Button(objeto,text='x',background="red",width=3,height=1,command=new)
  64                     b.grid(row=i,column=j)
  65                 else:
  66                     b=Button(objeto,text='x',background="red",width=3,height=1,command='')
  67                     b.grid(row=i,column=j)
  68                     if b["command"]!='None':
  69                         self.num_min=self.num_min+1
  70         mainloop()
  71 
  72     def Dibujar_n3(self):#Metodd que dibuja Tablero de nivel 3
  73         def new():
  74             tkMessageBox.showerror("PERDISTE","Usted ha caido en una mina")
  75             tkMessageBox.showinfo("SCORE",self.num_min)
  76         objeto=Tk()
  77         objeto.title('NIVEL 3')
  78         objeto.minsize(170,150)
  79         objeto.maxsize(170,150)
  80         for i in range(1,7):
  81             for j in range(1,7):
  82                 if (i==1 and j==1)or(i==6 and j==1)or(i==4 and j==2)or(i==6 and j==3)or(i==5 and j==2)or(i==2 and j==4)or(i==6 and j==6)or(i==1 and j==6)or(i==5 and j==1)or(i==4 and j==6)or(i==6 and j==4)or(i==3 and j==1):
  83                     b=Button(objeto,text='x',background="yellow",width=3,height=1,command=new)
  84                     b.grid(row=i,column=j)
  85                 else:
  86                     b=Button(objeto,text='x',background="yellow",width=3,height=1,command='')
  87                     b.grid(row=i,column=j)
  88                     if b["command"]!='None':
  89                         self.num_min=self.num_min+1
  90         mainloop()
  91 
  92     def Dibujar_n4(self):
  93         def new():
  94             tkMessageBox.showerror("PERDISTE","Usted ha caido en una mina")
  95             tkMessageBox.showinfo("SCORE",self.num_min)
  96         objeto=Tk()
  97         objeto.title('NIVEL 4')
  98         objeto.minsize(200,180)
  99         objeto.maxsize(200,180)
 100         for i in range(1,8):
 101             for j in range(1,8):
 102                 if (i==3 and j==2)or(i==5 and j==1)or(i==4 and j==4)or(i==1 and j==3)or(i==5 and j==4)or(i==2 and j==3):
 103                     b=Button(objeto,text='x',background="gold",width=3,height=1,command=new)
 104                     b.grid(row=i,column=j)
 105                 else:
 106                     b=Button(objeto,text='x',background="gold",width=3,height=1,command='')
 107                     b.grid(row=i,column=j)
 108                     if b["command"]!='None':
 109                         self.num_min=self.num_min+1
 110         mainloop()
 111 
 112 
 113 ################## menu.py
 114 
 115 from buscanew import *#Importa archivo de la clase principal
 116 from Tkinter import*#Importa Libreria Grafica
 117 import tkSimpleDialog
 118 import tkMessageBox
 119 
 120 
 121 def ahora():#Metodo que crea ventana para seleccionar el NIvel
 122     def niv1():#Funcion que instancia los objetos 
 123         d=Nivel_1()
 124         d.Dibujar_n1()
 125     def niv2():#Funcion que instancia los objetos 
 126         ob2=Nivel_1()
 127         ob2.Dibujar_n2()
 128     def niv3():#Funcion que instancia los objetos 
 129         ob3=Nivel_1()
 130         ob3.Dibujar_n3()
 131     def niv4():#Funcion que instancia los objetos 
 132         ob4=Nivel_1()
 133         ob4.Dibujar_n4()
 134 
 135 
 136     menu=Tk()#Crea Ventana
 137     menu.title('BUSCAMINAS')
 138     menu.minsize(180,100)
 139     menu.maxsize(180,100)
 140     tool=Frame(menu)
 141     a=Button(tool,text="NIVEL 1",foreground="red",background="blue",width=15,command=niv1)#Crea el boton de Nivel
 142     if a["command"]=='None':
 143         a["command"]='click'
 144         x=a.grid(row=20,column=50)
 145         print x
 146     x=a.grid(row=20,column=50)
 147     b=Button(tool,text="NIVEL 2",foreground="red",background="blue",width=15,command=niv2)#Crea el boton de Nivel
 148     b.grid(row=25,column=50)
 149     c=Button(tool,text="NIVEL 3",foreground="red",background="blue",width=15,command=niv3)#Crea el boton de Nivel
 150     c.grid(row=30,column=50)
 151     f=Button(tool,text="NIVEL 4",foreground="red",background="blue",width=15,command=niv4)#Crea el boton de Nivel
 152     f.grid(row=35,column=50)
 153     tool.pack(side=TOP,fill=X)
 154     menu.mainloop()
 155 
 156 root=Tk()#Crea Ventana de Menu
 157 root.title('BUSCAMINAS')
 158 root.minsize(200,50)
 159 root.maxsize(200,50)
 160 toolbar=Frame(root)
 161 b=Button(toolbar,text="JUGAR",foreground="white",background="black",width=15,command=ahora)#Crea boton Jugar
 162 salir=Button(toolbar,text="SALIR",foreground="white",background="black",width=15,command='exit')#Crea boton Salir
 163 b.grid(row=20,column=50)
 164 salir.grid(row=40,column=50)
 165 toolbar.pack(side=TOP,fill=X)
 166 root.mainloop()

Python/Code/BuscaMinas (last edited 2010-09-20 20:39:49 by Kmilo)