Advertisement
Guest User

Ejemplo Ordena Numeros para Kivy

a guest
Dec 2nd, 2015
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.31 KB | None | 0 0
  1. __version__="1.0"
  2. from kivy.app import App
  3. from kivy.uix.label import Label
  4. from kivy.uix.gridlayout import GridLayout
  5. from kivy.uix.button import Button
  6. from kivy.uix.popup import Popup
  7. import random
  8. 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)}
  9. class OrdenaApp(App):
  10.     def build(self):
  11.         self.title='Ordena Numeros'
  12.         def mueve(instance):
  13.             #print('The button <%s> is being pressed' % instance.id)
  14.             if self.termino==0:
  15.               for i in v3[int(instance.id)]:
  16.                 if v2[i].text=='':
  17.                     v2[i].text=instance.text
  18.                     instance.text=''
  19.                     self.cont=self.cont+1
  20.                     l.text='Cantidad de movimientos: '+str(self.cont)
  21.               t=''
  22.               for i in v2:
  23.                   t=t+i.text
  24.               if t=='12345678':
  25.                 l.text='Bien hecho, realizado en: '+str(self.cont)+' movimientos.'
  26.                 self.termino=1
  27.         def mezclar():
  28.             vaux=[]
  29.             for i in range(len(self.v)):
  30.                 n=random.randint(0,(len(self.v)-1))
  31.                 vaux.append(self.v[n])
  32.                 self.v.pop(n)
  33.             self.v=vaux
  34.             self.cont=0
  35.             self.termino=0
  36.             l.text='Cantidad de movimientos: 0'
  37.             for i in range(len(self.v)):
  38.                    v2[i].text=self.v[i]
  39.         def mezcla(instance):
  40.             mezclar()
  41.         self.v=['8','3','5','7','4','6','1','2',''] #Element for order
  42.         v2=[] #Array of buttons
  43.         layoutprinc=GridLayout(rows=3)
  44.         layout = GridLayout(cols=3)
  45.         self.cont=0 #Counter of movement
  46.         self.termino=0
  47.         for i in self.v:        
  48.                 v2.append(Button(text=i,id=str(len(v2)),font_size='30sp'))
  49.                 v2[len(v2)-1].bind(on_press=mueve)
  50.                 layout.add_widget(v2[len(v2)-1])
  51.         layoutprinc.add_widget(layout)
  52.         l = Label(text='Cantidad de movimientos: 0',size_hint_y=None, height=100)
  53.         layoutprinc.add_widget(l)
  54.         mezclar()
  55.         botonmezcla=Button(text="Mezclar nuevamente",size_hint_y=None, height=80)
  56.         layoutprinc.add_widget(botonmezcla)
  57.         botonmezcla.bind(on_press=mezcla)
  58.  
  59.         return layoutprinc
  60.        
  61.    
  62. OrdenaApp().run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement