Advertisement
freakrho

Torrnament

Dec 30th, 2011
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.39 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. #Torrnament by freakRHO freakrho@gmail.com
  4. v = '1.0'
  5.  
  6. import random
  7. from tkinter import *
  8. from tkinter import ttk
  9. import os
  10. #dir = os.path.dirname(__file__)
  11.  
  12. console = False
  13.  
  14. def ingresarComp():
  15.     print('\nTorrnament v ' + v)
  16.     print('\nIngrese la cantidad de competidores.')
  17.     canComp = int(input())
  18.     print('\nIngrese la cantidad de competidores por encuentro.')
  19.     canCompEnc = int(input())
  20.     print('\nIngrese los competidores (uno por linea)')
  21.     nombres = []
  22.     for r in range(canComp):
  23.         nombres.append(input())
  24.     return [canComp,canCompEnc,nombres]
  25.  
  26. def ordenarComp(nombres,canEnc,canCompEnc):
  27.     A = []
  28.     l = 0
  29.     for i in range(canEnc):
  30.         A.append([])
  31.         for j in range(canCompEnc):
  32.             A[i].append(nombres[l])
  33.             l = l + 1
  34.     return A
  35.    
  36. def main():
  37.     [canComp,canCompEnc,nombres] = ingresarComp()
  38.     key = 1
  39.     while key == 1:
  40.         if canComp%canCompEnc != 0:
  41.             nombres.append('Fantasma')
  42.             canComp = len(nombres)
  43.         else:
  44.             key = 0
  45.     random.shuffle(nombres)
  46.     canEnc = int(canComp/canCompEnc)
  47.     print(nombres)
  48.     A = ordenarComp(nombres,canEnc,canCompEnc)
  49.     print(A)
  50.    
  51. def enterData():
  52.     mainframe = ttk.Frame(root, padding="3 3 3 3")
  53.     mainframe.grid(column=0, row=0, sticky='nsew')
  54.     mainframe.columnconfigure(0, weight=1)
  55.     mainframe.rowconfigure(0, weight=1)
  56.    
  57.     #Entrada
  58.     groups_entry = ttk.Entry(mainframe, textvariable=groups)
  59.     groups_entry.grid(column=1, row=1, sticky='WE')
  60.    
  61.     global contestants_entry
  62.     contestants_entry = Text(mainframe, width=40, height=10)
  63.     contestants_entry.grid(column=0, row=3, columnspan=5)
  64.    
  65.     #Botones
  66.     ttk.Button(mainframe, text="Siguiente", command=orderContestans).grid(column=1, row=4)
  67.    
  68.     #Texto
  69.     ttk.Label(mainframe, text="Cantidad de personas por grupo:").grid(column=0,row=1, sticky='w')
  70.     ttk.Label(mainframe, text="Concursantes (uno por linea):").grid(column=0,row=2, sticky='w')
  71.    
  72.     for child in mainframe.winfo_children(): child.grid_configure(padx=2, pady=2)
  73.  
  74.     groups_entry.focus()
  75.  
  76. def orderContestans(*args):
  77.     amPlayers = int(contestants_entry.index('end - 1 line').split('.')[0])
  78.     amGroups = int(groups.get())
  79.     Contestants = contestants_entry.get('1.0', 'end').split('\n')
  80.     contestants = Contestants[0:len(Contestants) - 1]
  81.    
  82.     key = 1
  83.     while key == 1:
  84.         if amPlayers%amGroups != 0:
  85.             contestants.append('Fantasma')
  86.             amPlayers = len(contestants)
  87.         else:
  88.             key = 0
  89.     random.shuffle(contestants)
  90.     canEnc = int(amPlayers/amGroups)
  91.    
  92.     orderedPlayers = ordenarComp(contestants,canEnc,amGroups)
  93.    
  94.     mainframe = ttk.Frame(root, padding="3 3 3 3")
  95.     mainframe.grid(column=0, row=0, sticky='nsew')
  96.     mainframe.columnconfigure(0, weight=1)
  97.     mainframe.rowconfigure(0, weight=1)
  98.  
  99.     secondframe = ttk.Frame(mainframe)
  100.     secondframe.grid(column=0, row=0)
  101.     for i in range(0,canEnc,1):
  102.         frame = ttk.Frame(secondframe, borderwidth=2, relief='solid')
  103.         frame.grid(column=i, row=0)
  104.         frame.grid_configure(padx=10, pady=2)
  105.         o = 0
  106.         for j in orderedPlayers[i]:
  107.             ttk.Label(frame, text=' ' + j + ' ').grid(column=o, row=0, sticky='w')
  108.             o = o + 1
  109.        
  110.  
  111.     #Botones
  112.     ttk.Button(mainframe, text="Volver", command=enterData).grid(column=0, row=1, columnspan=canEnc)
  113.    
  114.     for child in mainframe.winfo_children(): child.grid_configure(padx=2, pady=2)
  115.  
  116. if console == True:
  117.     if __name__ == '__main__':
  118.         main()
  119. else:
  120.     root = Tk()
  121.     root.title('Torrnament v ' + v)
  122.  
  123.     groups = StringVar()
  124.    
  125.     enterData()
  126.    
  127.     root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement