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()
