hola buenas! estoy haciendo el juego de buttonmania en python usando glade, bien tengo dos clases una matriz y otra interfaz, necesito poner en una etiqueta el numero de golpes que da el jugador se como se hace.. pero no se como se cabia el valor de la etiqueta, he leido por ahi que usando setlabel pero no tengo ni idea... alguien me puede exar un cable?¿
saludos!! gracias de antemano
por si a alguien le interesa ver un cacho de codigo ;)
Código Python:
Ver original#!usr/bin/python
# -*-coding utf-8-*-
import gtk
import random
import os
class cmatriz():
def __init__ (self,filas,colum):
self.filas=filas
self.colum=colum
self.fil=[]
self.col=[]
self.golpes=0
def inicializar(self):
self.m=[]
self.m2=[]
for i in range(0,self.filas+2):
f=[]
f2=[]
for j in range(0,self.colum+2):
f.append(0)
f2.append(0)
self.m.append(f)
self.m2.append(f2)
self.fil=[]
self.col=[]
def sucesor(self,c,d):
if self.m[c][d] == 3:
self.m[c][d]=0
else:
self.m[c][d]=(self.m[c][d])+1
def predecesor (self,c,d):
if self.m[c][d] == 0:
self.m[c][d]=3
else:
self.m[c][d]=(self.m[c][d])-1
def generarmat(self,a,b):
self.sucesor(a,b)
self.sucesor(a-1,b)
self.sucesor(a,b-1)
self.sucesor(a+1,b)
self.sucesor(a,b+1)
def golpearmat(self,a,b):
self.predecesor(a,b)
self.predecesor(a-1,b)
self.predecesor(a,b-1)
self.predecesor(a+1,b)
self.predecesor(a,b+1)
self.fil.append(a)
self.col.append(b)
def nivel(self,lvl):
lvl=lvl*3
for i in range(0,lvl):
a=random.randint(1,self.filas)
b=random.randint(1,self.colum)
self.generarmat(a,b)
self.recomenzar()
print self.m
def deshacer(self):
if len(self.fil)>0:
self.generarmat(self.fil[-1],self.col[-1])
self.fil.pop()
self.col.pop()
def recomenzar(self):
for i in range(0,self.filas+2):
for j in range(0,self.colum+2):
self.m2[i][j]=self.m[i][j]
def recomenzar1(self):
for i in range(0,self.filas+2):
for j in range(0,self.colum+2):
self.m[i][j]=self.m2[i][j]
def comprobar(self):
comprobar=True
for i in range(1,7):
for j in range(1,7):
if self.m[i][j] != 0:
comprobar= False
return comprobar
def golpesmas(self):
if golpes >= 0:
golpes=golpes+1
def golpesmen(self):
if golpes>=0:
golpes=golpes-1
class interfaz():
def __init__(self,matriz):
self.glade=gtk.Builder()
self.glade.add_from_file('com.glade')
self.ventana=self.glade.get_object('window1')
self.pulsadores=self.glade.get_object('table1').get_children()
self.pulsadores1=self.glade.get_object('hbox2').get_children()
self.pulsadores2=self.glade.get_object('hbox3').get_children()
for i in range(len(self.pulsadores)):
self.pulsadores[i].set_label('0')
self.glade.connect_signals(self)
self.ventana.show_all()
self.matriz=matriz
def actualizar(self):
for i in range(len(self.pulsadores)):
a=((35-i)//(6))+1
b=((35-i)%(6))+1
self.pulsadores[i].set_label(str(self.matriz.m[a][b]))
def on_button_clicked(self,widget):
for i in range(len(self.pulsadores)):
if self.pulsadores[i]==widget:
a=((35-i)//(6))+1
b=((35-i)%(6))+1
print a,b
self.matriz.golpearmat(a,b)
if self.matriz.comprobar():
print'p'
self.matriz.m=[]
self.matriz.inicializar()
self.matriz.nivel(1)
self.actualizar()
def on_window1_delete_event(self,widget,event):
gtk.main_quit()
print 'xao'
def button_clicked_cb(self,widget):
self.matriz.m=[]
self.matriz.inicializar()
self.matriz.nivel(1)
self.actualizar()
def on_deshacer_clicked(self,widget):
self.matriz.deshacer()
self.actualizar()
def on_recomenzar_clicked(self,widget):
self.matriz.recomenzar1()
self.actualizar()
def nivel_clicked_cb(self,widget):
for i in range(len(self.pulsadores1)):
if self.pulsadores1[i]==widget:
lvl=i
print 'estas en el nivel:', lvl
self.matriz.m=[]
self.matriz.inicializar()
self.matriz.nivel(lvl)
self.actualizar()
os.system('clear')
matriz=cmatriz(6,6)
matriz.inicializar()
app=interfaz(matriz)
matriz.nivel(1)
app.actualizar()
gtk.main()