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