Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __version__="1.0"
- from kivy.app import App
- from kivy.uix.label import Label
- from kivy.uix.gridlayout import GridLayout
- from kivy.uix.button import Button
- from kivy.uix.popup import Popup
- import random
- v3={0:(1,3),1:(0,2,4),2:(1,5),3:(0,4,6),4:(1,3,5,7),5:(2,4,8),6:(3,7),7:(4,6,8),8:(5,7)}
- class OrdenaApp(App):
- def build(self):
- self.title='Ordena Numeros'
- def mueve(instance):
- #print('The button <%s> is being pressed' % instance.id)
- if self.termino==0:
- for i in v3[int(instance.id)]:
- if v2[i].text=='':
- v2[i].text=instance.text
- instance.text=''
- self.cont=self.cont+1
- l.text='Cantidad de movimientos: '+str(self.cont)
- t=''
- for i in v2:
- t=t+i.text
- if t=='12345678':
- l.text='Bien hecho, realizado en: '+str(self.cont)+' movimientos.'
- self.termino=1
- def mezclar():
- vaux=[]
- for i in range(len(self.v)):
- n=random.randint(0,(len(self.v)-1))
- vaux.append(self.v[n])
- self.v.pop(n)
- self.v=vaux
- self.cont=0
- self.termino=0
- l.text='Cantidad de movimientos: 0'
- for i in range(len(self.v)):
- v2[i].text=self.v[i]
- def mezcla(instance):
- mezclar()
- self.v=['8','3','5','7','4','6','1','2',''] #Element for order
- v2=[] #Array of buttons
- layoutprinc=GridLayout(rows=3)
- layout = GridLayout(cols=3)
- self.cont=0 #Counter of movement
- self.termino=0
- for i in self.v:
- v2.append(Button(text=i,id=str(len(v2)),font_size='30sp'))
- v2[len(v2)-1].bind(on_press=mueve)
- layout.add_widget(v2[len(v2)-1])
- layoutprinc.add_widget(layout)
- l = Label(text='Cantidad de movimientos: 0',size_hint_y=None, height=100)
- layoutprinc.add_widget(l)
- mezclar()
- botonmezcla=Button(text="Mezclar nuevamente",size_hint_y=None, height=80)
- layoutprinc.add_widget(botonmezcla)
- botonmezcla.bind(on_press=mezcla)
- return layoutprinc
- OrdenaApp().run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement