Advertisement
sombriks

testando copa

Mar 28th, 2014
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 22.64 KB | None | 0 0
  1. #
  2. # -*- coding: utf-8 -*-
  3. #
  4.  
  5. import pickle
  6. import os.path
  7.  
  8. # nome do time, pontuacao, gols marcados, gols sofridos
  9. selecao = [
  10.     [  
  11.         ['BRASIL', 0, 0, 0], ['CROACIA', 0, 0, 0], ['MEXICO', 0, 0, 0], ['CAMAROES', 0, 0, 0, ]
  12.     ], [  
  13.         ['ESPANHA', 0, 0, 0], ['HOLANDA', 0, 0, 0], ['CHILE', 0, 0, 0], ['AUSTRALIA', 0, 0, 0]
  14.     ], [  
  15.         ['COLOMBIA', 0, 0, 0], ['GRECIA', 0, 0, 0], ['C. DO MARFIM', 0, 0, 0], ['JAPÃO', 0, 0, 0]
  16.     ], [
  17.         ['URUGUAI', 0, 0, 0], ['COSTA RICA', 0, 0, 0], ['INGLATERRA', 0, 0, 0], ['ITÁLIA', 0, 0, 0]
  18.     ], [  
  19.         ['SUIÇA', 0, 0, 0], ['EQUADOR', 0, 0, 0], ['FRANÇA', 0, 0, 0], ['HONDURAS', 0, 0, 0]
  20.     ], [  
  21.         ['ARGENTINA', 0, 0, 0], ['BOSNIA', 0, 0, 0], ['IRA', 0, 0, 0], ['NIGERIA', 0, 0, 0]
  22.     ], [  
  23.         ['ALEMANHA', 0, 0, 0], ['PORTUGAL', 0, 0, 0], ['GANA', 0, 0, 0], ['EUA', 0, 0, 0]
  24.     ], [
  25.         ['BELGICA', 0, 0, 0], ['ARGELIA', 0, 0, 0], ['RÚSSIA', 0, 0, 0], ['C. DO SUL', 0, 0, 0]
  26.     ]
  27. ]
  28.  
  29.  
  30.  
  31. times_oitavas = []
  32.  
  33. times_quartas = []
  34.  
  35. times_semifinais = []
  36.  
  37.  
  38. grupos = [
  39.       [  # grupo A
  40.         [selecao[0][0], selecao[0][1], '12/06/2014', 'Quinta-Feira', '16:00h', 'São Paulo', '__', '__'],
  41.         [selecao[0][2], selecao[0][3], '13/06/2014', 'Sexta-Feira', '13:00h', 'Natal', '__', '__'],
  42.         [selecao[0][0], selecao[0][2], '17/06/2014', 'Terça-Feira', '16:00h', 'Fortaleza', '__', '__'],
  43.         [selecao[0][3], selecao[0][1], '18/06/2014', 'Quarta-Feira', '19:00h', 'Manaus', '__', '__'],
  44.         [selecao[0][1], selecao[0][2], '23/06/2014', 'Segunda-Feira', '17:00h', 'Recife', '__', '__'],
  45.         [selecao[0][3], selecao[0][0], '23/06/2014', 'Segunda-Feira', '17:00h', 'Brasília', '__', '__']
  46.     ], [  # grupo B
  47.         [selecao[1][0], selecao[1][1], '13/06/2014', 'Sexta-Feira', '16:00h', 'Salvador', '__', '__'],
  48.         [selecao[1][2], selecao[1][3], '13/06/2014', 'Sexta-Feira', '19:00h', 'Cuiabá', '__', '__'],
  49.         [selecao[1][0], selecao[1][2], '18/06/2014', 'Quarta-Feira', '13:00h', 'Porto Alegre', '__', '__'],
  50.         [selecao[1][3], selecao[1][1], '18/06/2014', 'Quarta-Feira', '16:00h', 'Rio de Janeiro', '__', '__'],
  51.         [selecao[1][1], selecao[1][2], '23/06/2014', 'Segunda-Feira', '13:00h', 'Curitiba', '__', '__'],
  52.         [selecao[1][3], selecao[1][0], '23/06/2014', 'Segunda-Feira', '13:00h', 'São Paulo', '__', '__']
  53.     ], [  # grupo C
  54.         [selecao[2][0], selecao[2][1], '14/06/2014', 'Sábado', '13:00h', 'Belo Horizonte', '__', '__'],
  55.         [selecao[2][2], selecao[2][3], '14/06/2014', 'Sábado', '22:00h', 'Recife', '__', '__'],
  56.         [selecao[2][0], selecao[2][2], '19/06/2014', 'Quinta-feira', '13:00h', 'Brasília', '__', '__'],
  57.         [selecao[2][3], selecao[2][1], '19/06/2014', 'Quinta-feira', '19:00h', 'Natal', '__', '__'],
  58.         [selecao[2][1], selecao[2][2], '24/06/2014', 'Terça-Feira', '17:00h', 'Cuiabá', '__', '__'],
  59.         [selecao[2][3], selecao[2][0], '24/06/2014', 'Terça-Feira', '17:00h', 'Fortaleza', '__', '__']
  60.     ], [  # grupo D
  61.         [selecao[3][0], selecao[3][1], '14/06/2014', 'Sábado', '16:00h', 'Fortaleza', '__', '__'],
  62.         [selecao[3][2], selecao[3][3], '14/06/2014', 'Sábado', '19:00h', 'Manaus', '__', '__'],
  63.         [selecao[3][0], selecao[3][2], '19/06/2014', 'Quinta-feira', '16:00h', 'São Paulo', '__', '__'],
  64.         [selecao[3][3], selecao[3][1], '20/06/2014', 'Sexta-feira', '13:00h', 'Recife', '__', '__'],
  65.         [selecao[3][1], selecao[3][2], '24/06/2014', 'Terça-Feira', '13:00h', 'Natal', '__', '__'],
  66.         [selecao[3][3], selecao[3][0], '24/06/2014', 'Terça-Feira', '13:00h', 'Belo Horizonte', '__', '__']
  67.     ], [  # grupo E
  68.         [selecao[4][0], selecao[4][1], '15/06/2014', 'Domingo', '13:00h', 'Brasília', '__', '__'],
  69.         [selecao[4][2], selecao[4][3], '15/06/2014', 'Domingo', '16:00h', 'Porto Alegre', '__', '__'],
  70.         [selecao[4][0], selecao[4][2], '20/06/2014', 'Sexta-feira', '16:00h', 'Salvador', '__', '__'],
  71.         [selecao[4][3], selecao[4][1], '20/06/2014', 'Sexta-feira', '19:00h', 'Curitiba', '__', '__'],
  72.         [selecao[4][1], selecao[4][2], '25/06/2014', 'Quarta-Feira', '17:00h', 'Manaus', '__', '__'],
  73.         [selecao[4][3], selecao[4][0], '25/06/2014', 'Quarta-Feira', '17:00h', 'Rio de Janeiro', '__', '__']
  74.     ], [  # grupo F
  75.         [selecao[5][0], selecao[5][1], '15/06/2014', 'Domingo', '19:00h', 'Rio de Janeiro', '__', '__'],
  76.         [selecao[5][2], selecao[5][3], '16/06/2014', 'Segunda-Feira', '16:00h', 'Curitiba', '__', '__'],
  77.         [selecao[5][0], selecao[5][2], '21/06/2014', 'Sábado', '13:00h', 'Belo Horizonte', '__', '__'],
  78.         [selecao[5][3], selecao[5][1], '21/06/2014', 'Sábado', '19:00h', 'Cuiabá', '__', '__'],
  79.         [selecao[5][1], selecao[5][2], '25/06/2014', 'Quarta-Feira', '13:00h', 'Salvador', '__', '__'],
  80.         [selecao[5][3], selecao[5][0], '25/06/2014', 'Quarta-Feira', '13:00h', 'Porto Alegre', '__', '__']
  81.     ], [  # grupo G
  82.         [selecao[6][0], selecao[6][1], '16/06/2014', 'Segunda-Feira', '13:00h', 'Salvador', '__', '__'],
  83.         [selecao[6][2], selecao[6][3], '16/06/2014', 'Segunda-Feira', '19:00h', 'Natal', '__', '__'],
  84.         [selecao[6][0], selecao[6][2], '21/06/2014', 'Sábado', '16:00h', 'Fortaleza', '__', '__'],
  85.         [selecao[6][3], selecao[6][1], '22/06/2014', 'Domingo', '19:00h', 'Manaus', '__', '__'],
  86.         [selecao[6][1], selecao[6][2], '26/06/2014', 'Quinta-Feira', '13:00h', 'Brasília', '__', '__'],
  87.         [selecao[6][3], selecao[6][0], '26/06/2014', 'Quinta-Feira', '13:00h', 'Recife', '__', '__']
  88.     ], [  # grupo H
  89.         [selecao[7][0], selecao[7][1], '17/06/2014', 'Terça-Feira', '13:00h', 'Belo Horizonte', '__', '__'],
  90.         [selecao[7][2], selecao[7][3], '17/06/2014', 'Terça-Feira', '19:00h', 'Cuiabá', '__', '__'],
  91.         [selecao[7][0], selecao[7][2], '22/06/2014', 'Domingo', '13:00h', 'Rio de Janeiro', '__', '__'],
  92.         [selecao[7][3], selecao[7][1], '22/06/2014', 'Domingo', '16:00h', 'Porto Alegre', '__', '__'],
  93.         [selecao[7][1], selecao[7][2], '26/06/2014', 'Quinta-Feira', '17:00h', 'Curitiba', '__', '__'],
  94.         [selecao[7][3], selecao[7][0], '26/06/2014', 'Quinta-Feira', '17:00h', 'São Paulo', '__', '__']
  95.     ]
  96. ]
  97.  
  98.  
  99. oitavas = [
  100.     ['  ', '   ', '28/06/2014', 'Sábado', '13:00h', 'Belo Horizonte', '__', '__' ],
  101.     ['  ', '   ', '28/06/2014', 'Sábado', '17:00h', 'Rio de Janeiro', '__', '__' ],
  102.     ['  ', '   ', '30/06/2014', 'Segunda-Feira', '13:00h', 'Brasília', '__', '__'],
  103.     ['  ', '   ', '30/06/2014', 'Segunda-Feira', '17:00h', 'Porto Alegre', '__', '__' ],
  104.     ['  ', '   ', '29/06/2014', 'Domingo', '13:00h', 'Fortaleza', '__', '__' ],
  105.     ['  ', '   ', '29/06/2014', 'Domingo', '17:00h', 'Recife', '__', '__' ],
  106.     ['  ', '   ', '01/07/2014', 'Terça-Feira', '13:00h', 'São Paulo', '__', '__'],
  107.     ['  ', '   ', '01/07/2014', 'Terça-Feira', '17:00h', 'Salvador', '__', '__']
  108. ]
  109.  
  110. quartas = [
  111.     ['  ', '   ', '04/07/2014', 'Sexta-Feira', '17:00h', 'Fortaleza', '__', '__' ],
  112.     ['  ', '   ', '04/07/2014', 'Sexta-Feira', '13:00h', 'Rio de Janeiro', '__', '__'],
  113.     ['  ', '   ', '05/07/2014', 'Sábado', '17:00h', 'Salvador', '__', '__'],
  114.     ['  ', '   ', '05/07/2014', 'Sábado', '13:00h', 'Brasília', '__', '__']
  115. ]
  116.  
  117. semifinal = [
  118.     ['  ', '   ', '08/07/2014', 'Terça-Feira', '17:00h', 'Belo Horizonte', '__', '__' ],
  119.     ['  ', '   ', '09/07/2014', 'Quarta-Feira', '17:00h', 'São Paulo', '__', '__' ]
  120. ]
  121.  
  122. terceiro_e_quarto = ['  ', '   ', '12/07/2014', 'Sábado', '17:00h', 'Brasília', '__', '__' ]
  123.  
  124. disputa_final = ['  ', '   ', '13/07/2014', 'Domingo', '16:00h', 'Rio de Janeiro', '__', '__' ]
  125.  
  126. objetos = [selecao, times_oitavas, times_quartas, times_semifinais, grupos, oitavas, quartas, semifinal, terceiro_e_quarto, disputa_final]
  127.  
  128.  
  129. grps = ["A", "B", "C", "D", "E", "F", "G", "H"]
  130.  
  131. # nome do time, pontuacao, gols marcados, gols sofridos, saldo de gols
  132. def print_tabela_pontos():
  133.     g = ["A", "B", "C", "D", "E", "F", "G", "H"]
  134.     for n in range(len(selecao)):
  135.         print("Grupo {}:".format(g[n]))
  136.         for i in selecao[n]:
  137.             s = "seleção: {:<15}, pontos: {}, gols marcados: {}, gols sofridos: {} saldo de gols: {}"
  138.             print(s.format(i[0], i[1], i[2], i[3], i[2] - i[3]))
  139.     try:
  140.         x = int(input("\n\n --->Digite 0 para voltar: "))
  141.         if x < 0 or x > 0:
  142.             x = int(input("O número digitado é inválido. Digite o número válido:"))
  143.             if x == 0:
  144.                 return
  145. #                 menu()
  146.    
  147.         elif x == 0:
  148.             return
  149. #             menu()
  150.     except ValueError as ex:
  151.         print("Valor inválido, por favor digitar o número 0.")
  152.         x = int (input())
  153.         if x == 0:
  154.             return
  155. #             menu()
  156.     except KeyboardInterrupt as kex:
  157.         print ('Erro: O usuário cancelou a operação')
  158.     # x=int(input("\n\n --->Digite 0 para voltar: "))
  159.     # if x==0:
  160.     #      menu()
  161.  
  162. # seleção 1, seleção 2, data, dia semana, hora, cidade, r1, r2
  163. def print_partida(p, n=""):
  164.     # Brasil 3 X Croácia 2, Quinta-Feira às 16:00h, 12/06/2014 em São Paulo
  165.     # s = "{} {} {} X {} {}, {} às {}, {} em {}"
  166.     s = "\n {}. {:>10} {:>4} X {:<3} {:<15} {:<15} {:>10} - {:>10} {:>15} \n"
  167.     s = s.format(n, p[0][0], p[6], p[7], p[1][0], p[3], p[4], p[2], p[5])
  168.     print(s)
  169.    
  170.  
  171.  
  172. def pts(a):
  173.     return a[1]
  174.  
  175. def atualiza_oitavas():
  176.     # ordena cada grupo pelos pontos marcados
  177.     for g in range(len(selecao)):
  178.         selecao[g] = sorted(selecao[g], key=pts, reverse=True)
  179.     times_oitavas[:] = []
  180.     # 1º Grupo A x 2º Grupo B
  181.     oitavas[0][0] = selecao[0][0]
  182.     oitavas[0][1] = selecao[1][1]
  183.     times_oitavas.append([selecao[0][0], selecao[1][1]])  # p81
  184.     # 1º Grupo C x 2º Grupo D
  185.     oitavas[1][0] = selecao[2][0]
  186.     oitavas[1][1] = selecao[3][1]
  187.     times_oitavas.append([selecao[2][0], selecao[3][1]])  # p82
  188.     # 1º Grupo B x 2º Grupo A
  189.     oitavas[2][0] = selecao[1][0]
  190.     oitavas[2][1] = selecao[0][1]
  191.     times_oitavas.append([selecao[1][0], selecao[0][1]])  # p83
  192.     # 1º Grupo D x 2º Grupo C
  193.     oitavas[3][0] = selecao[3][0]
  194.     oitavas[3][1] = selecao[2][1]
  195.     times_oitavas.append([selecao[3][0], selecao[2][1]])  # p84
  196.     # 1º Grupo E x 2º Grupo F
  197.     oitavas[4][0] = selecao[4][0]
  198.     oitavas[4][1] = selecao[5][1]
  199.     times_oitavas.append([selecao[4][0], selecao[5][1]])  # p85
  200.     # 1º Grupo G x 2º Grupo H
  201.     oitavas[5][0] = selecao[6][0]
  202.     oitavas[5][1] = selecao[7][1]
  203.     times_oitavas.append([selecao[6][0], selecao[7][1]])  # p86
  204.     # 1º Grupo F x 2º Grupo E
  205.     oitavas[6][0] = selecao[5][0]
  206.     oitavas[6][1] = selecao[4][1]
  207.     times_oitavas.append([selecao[5][0], selecao[4][1]])  # p87
  208.     # 1º Grupo H x 2º Grupo G
  209.     oitavas[7][0] = selecao[7][0]
  210.     oitavas[7][1] = selecao[6][1]
  211.     times_oitavas.append([selecao[7][0], selecao[6][1]])  # p88
  212.    
  213.    
  214. def atualiza_quartas():
  215.     # ordena os grupos de oitava pelos pontos marcados
  216.     for g in range(len(times_oitavas)):
  217.         times_oitavas[g] = sorted(times_oitavas[g], key=pts, reverse=True)
  218.     times_quartas [:] = []
  219.     # Vencedor 5 x Vencedor 6
  220.     quartas[0][0] = times_oitavas[4][0]
  221.     quartas[0][1] = times_oitavas[5][0]
  222.     times_quartas.append([times_oitavas[4][0], times_oitavas[5][0]])
  223.     # Vencedor 1 x Vencedor 2
  224.     quartas[1][0] = times_oitavas[0][0]
  225.     quartas[1][1] = times_oitavas[1][0]
  226.     times_quartas.append([times_oitavas[0][0], times_oitavas[1][0]])
  227.     # Vencedor 7 x Vencedor 8
  228.     quartas[2][0] = times_oitavas[6][0]
  229.     quartas[2][1] = times_oitavas[7][0]
  230.     times_quartas.append([times_oitavas[6][0], times_oitavas[7][0]])
  231.     # Vencedor 3 x Vencedor 4
  232.     quartas[3][0] = times_oitavas[2][0]
  233.     quartas[3][1] = times_oitavas[3][0]
  234.     times_quartas.append([times_oitavas[2][0], times_oitavas[3][0]])
  235.  
  236. def atualiza_semifinal():
  237.     # ordena os grupos de oitava pelos pontos marcados
  238.     for g in range(len(times_quartas)):
  239.         times_quartas[g] = sorted(times_quartas[g], key=pts, reverse=True)
  240.     times_semifinais [:] = []
  241.     # Vencedor Q1 x Vencedor Q2
  242.     semifinal[0][0] = times_quartas[0][0]
  243.     semifinal[0][1] = times_quartas[1][0]
  244.     times_semifinais.append([times_quartas[0][0], times_quartas[1][0]])
  245.     # Vencedor Q3 x Vencedor Q4
  246.     semifinal[1][0] = times_quartas[2][0]
  247.     semifinal[1][1] = times_quartas[3][0]
  248.     times_semifinais.append([times_quartas[2][0], times_quartas[3][0]])
  249.  
  250. def atualiza_terceiro_e_final():
  251.     # ordena os grupos de oitava pelos pontos marcados
  252.     for g in range(len(times_semifinais)):
  253.         times_semifinais[g] = sorted(times_semifinais[g], key=pts, reverse=True)
  254.     terceiro_e_quarto[0] = times_semifinais[0][1]
  255.     terceiro_e_quarto[1] = times_semifinais[1][1]
  256.     disputa_final[0] = times_semifinais[0][0]
  257.     disputa_final[1] = times_semifinais[1][0]
  258.  
  259. def tem_oitavas():
  260.     for g in range(len(grupos)):
  261.         for h in range(len(grupos[g])):
  262.             if grupos[g][h][6] == '__' or grupos[g][h][7] == '__' :
  263.                 return False
  264.     return True  
  265.  
  266. def tem_quartas():
  267.     for g in range(len(oitavas)):
  268.         if oitavas[g][6] == '__' or oitavas[g][7] == '__' :
  269.             return False
  270.     return True
  271.  
  272. def tem_semifinal():
  273.     for g in range(len(quartas)):
  274.         if quartas[g][6] == '__' or quartas[g][7] == '__' :
  275.             return False
  276.     return True
  277.  
  278. def tem_terceiro_e_final():
  279.     for g in range(len(semifinal)):
  280.         if semifinal[g][6] == '__' or semifinal[g][7] == '__' :
  281.             return False
  282.     return True
  283.  
  284.  
  285. def resultado_partida(prt):
  286.     print("Informe o resultado para {}".format(prt[0][0]))
  287.     r1 = int(input())
  288.     print("Informe o resultado para {}".format(prt[1][0]))
  289.     r2 = int(input())
  290.     prt[0][2] = prt[0][2] + r1
  291.     prt[0][3] = prt[0][3] + r2
  292.     prt[1][2] = prt[1][2] + r2
  293.     prt[1][3] = prt[1][3] + r1
  294.     prt[6] = r1
  295.     prt[7] = r2
  296.     if r1 == r2:
  297.         prt[0][1] = prt[0][1] + 1
  298.         prt[1][1] = prt[1][1] + 1
  299.     elif r1 > r2:
  300.         prt[0][1] = prt[0][1] + 3
  301.     else:
  302.         prt[1][1] = prt[1][1] + 3
  303.     # o menu tem um loop, non precisa disso aqui
  304. #     menu()
  305.  
  306. def print_resultado():
  307.     # atualiza
  308.     atualiza_tabelas()
  309.     for g in range(len(grps)):
  310.         print("\r\nGrupo {}:".format(grps[g]))
  311.         y = ["SELEÇÕES", "DIA DA SEMANA", "HORÁRIO", "DATA", "LOCAL"]
  312.         print('{:>25} {:>28} {:>13} {:>6} {:>15} \n'.format(y[0], y[1], y[2], y[3], y[4]), end='')
  313.         for p in grupos[g]:
  314.             print_partida(p)
  315.     if tem_oitavas():
  316.         print("\r\nOitavas:")
  317.         for g in range(len(oitavas)):
  318.             print_partida(oitavas[g])
  319.     if tem_quartas():
  320.         print("\r\nQuartas:")
  321.         for g in range(len(quartas)):
  322.             print_partida(quartas[g])
  323.     if tem_semifinal():
  324.         print("Semifinal:")
  325.         for g in range(len(semifinal)):
  326.             print_partida(semifinal[g])
  327.     if tem_terceiro_e_final():
  328.         print("Disputa do terceiro lugar:")
  329.         print_partida(terceiro_e_quarto)
  330.         print("Final:")
  331.         print_partida(disputa_final)
  332.     try:
  333.          x = int(input("\n\n --->Digite 0 para voltar: "))
  334.          if x < 0 or x > 0:
  335.             x = int(input("O número digitado é inválido. Digite o número válido:"))
  336.             if x == 0:
  337.                 menu()
  338.          elif x == 0:
  339.             menu()
  340.     except ValueError as ex:
  341.          print("Valor inválido, por favor digitar o número 0.")
  342.          x = int (input())
  343.          if x == 0:
  344.             menu()
  345.     except KeyboardInterrupt as kex:
  346.          print ('Erro: O usuário cancelou a operação')  
  347.     # x=int(input("\n\n --->Digite 0 para voltar: "))
  348.     # if x==0:
  349.      #     menu()
  350.  
  351.  
  352. def atualiza_tabelas():
  353.     if tem_oitavas():
  354.        atualiza_oitavas()
  355.     if tem_quartas():
  356.        atualiza_quartas()
  357.     if tem_semifinal():
  358.        atualiza_semifinal()
  359.     if tem_terceiro_e_final():
  360.        atualiza_terceiro_e_final()
  361.  
  362. def print_grupos():
  363.     # menu básico
  364.     for g in range(len(grps)):
  365.         print("{}. Grupo {}".format(g + 1, grps[g]))
  366.     if tem_oitavas():
  367.         print("9. Oitavas de final")
  368.     if tem_quartas():
  369.         print("10. Quartas de final")
  370.     if tem_semifinal():
  371.         print("11. Semifinal")
  372.     if tem_terceiro_e_final():
  373.         print("12. Terceiro lugar")
  374.         print("13. Final")
  375.      # descobrindo a opção do usuário  
  376.     op = int(input("\n Informe o grupo desejado:"))
  377.     if op < 9:
  378.         grp = grupos[op - 1]
  379.     elif op == 9:
  380.         grp = oitavas
  381.     elif op == 10:
  382.         grp = quartas
  383.     elif op == 11:
  384.         grp = semifinal
  385.     elif op == 12:
  386.         grp = terceiro_e_quarto
  387.     elif op == 13:
  388.         grp = disputa_final
  389.    
  390.     for i in range(len(grp)):
  391.         print_partida(grp[i], i)
  392.     op = int(input("\n Informe a partida desejada:"))
  393.    
  394.     # processando
  395.     resultado_partida(grp[op])
  396.    
  397.     # atualiza
  398.     atualiza_tabelas()
  399.  
  400. # Formata as listas de busca#
  401. def busca_por_data():
  402.     data = input("Digite a data desejada:")
  403.     lista_jogos = []
  404.  
  405.     # Busca nos grupos
  406.     for grupo in grupos:
  407.         for jogo in grupo:
  408.                 if data == jogo[2]:
  409.                    lista_jogos.append(jogo)
  410.  
  411.       # Busca nas oitavas    
  412.     for jogo in oitavas:
  413.         if data == jogo[2]:
  414.                 lista_jogos.append(jogo)
  415.  
  416.     # Busca nas quartas
  417.     for jogo in quartas:
  418.         if data == jogo[2]:
  419.              lista_jogos.append(jogo)
  420.    
  421.  
  422.     # Busca na semifinal(tá dando prob aqui)
  423.     for jogo in semifinal:
  424.         if data == jogo[2]:
  425.             lista_jogos.append(semifinal)
  426.              
  427.     # Busca no terceiro lugar
  428.     if data == terceiro_e_quarto[2]:
  429.         lista_jogos.append(terceiro_e_quarto)
  430.      
  431.     # Busca na final
  432.     if data == disputa_final[2]:
  433.         lista_jogos.append(disputa_final)
  434.    
  435.     # formatação das tabelas de pesquisa    
  436.     y = ["SELEÇÕES", "DATA", "DIA DA SEMANA", "HORÁRIO", "LOCAL"]
  437.     print('{:>25} {:>22} {:>24} {:>10} {:>13} \n'.format(y[0], y[1], y[2], y[3], y[4]), end='')
  438.     for i in range(len(lista_jogos)):
  439.         print_partida(lista_jogos[i])
  440.  
  441. def busca_por_selecao():
  442.     selecao = input("Digite a seleção desejada:")
  443.     lista_jogos = []
  444.     selecao = selecao.lower()
  445.    
  446.     # Busca nos grupos
  447.     for grupo in grupos:
  448.         for jogo in grupo:
  449.             if selecao == jogo[0][0].lower() or selecao == jogo[1][0].lower():
  450.                 lista_jogos.append(jogo)
  451.                
  452.      # Busca nas oitavas    
  453.     for jogo in oitavas:
  454.         if selecao == jogo[0][0].lower() or selecao == jogo[1][0].lower():
  455.             lista_jogos.append(jogo)
  456.  
  457.     # Busca nas quartas
  458.     for jogo in quartas:
  459.         if selecao == jogo[0][0].lower() or selecao == jogo[1][0].lower():
  460.             lista_jogos.append(jogo)    
  461.  
  462.     # Busca na semifinal(tá dando prob aqui)
  463.     for jogo in semifinal:
  464.         if selecao == jogo[0][0].lower() or selecao == jogo[1][0].lower():
  465.             lista_jogos.append(jogo)
  466.            
  467.     # Busca no terceiro lugar
  468.     if selecao == terceiro_e_quarto[0].lower() or selecao == terceiro_e_quarto[1].lower():
  469.         lista_jogos.append(terceiro_e_quarto)
  470.        
  471.     # Busca na final
  472.     if selecao == disputa_final[0].lower() or selecao == disputa_final[1].lower():
  473.         lista_jogos.append(disputa_final)
  474.                
  475.     # formatação das tabelas de pesquisa    
  476.     y = ["SELEÇÕES", "DATA", "DIA DA SEMANA", "HORÁRIO", "LOCAL"]
  477.     print('{:>25} {:>22} {:>24} {:>10} {:>13} \n'.format(y[0], y[1], y[2], y[3], y[4]), end='')
  478.     for i in range(len(lista_jogos)):
  479.         print_partida(lista_jogos[i])
  480.  
  481. def busca_jogo():
  482.     x = input("Busca ordenada por: (a)data e (b)seleção. Digite a opção desejada:")
  483.     if x == "a" or x == "A":
  484.         print("\n-----BUSCA ORDENADA POR DATA-----\n")
  485.         busca_por_data()
  486.     elif x == "b" or x == "B":
  487.         print("\n-----BUSCA ORDENADA POR SELEÇÃO-----\n")
  488.         busca_por_selecao()
  489.      
  490. def rodape():
  491.     print("\t\t\t\t\t\t\t\t\t\t\t\t\t\t ©Juliana&Amanda")
  492.     from datetime import datetime
  493.     today = datetime.now()
  494.     day = today.day
  495.     month = today.month
  496.     year = today.year
  497.     # print ("\t\t\t\t\t\t\t\t\t\t\t\t\t\t""hoje ", today, " dia ", day, "/", month, "/", year)
  498.     print ("\t\t\t\t\t\t\t\t\t\t\t\t\t\t""hoje ", day, "/", month, "/", year)
  499.     print ("\t\t\t\t\t\t\t\t\t\t\t\t\t\t""hora ", today.hour, "| min ", today.minute, "| seg ", today.second)
  500.  
  501. def valida_faixa_inteiro(pergunta, inicio, fim):
  502.      # while True:
  503.      try:
  504.         valor = int(input(pergunta))
  505.         if  valor < inicio or  valor > fim:
  506.             print("O número digitado é inválido.Digite um número válido")
  507.             return valor
  508.      except ValueError as ex:
  509.              print ("Valor inválido, por favor digitar entre %d e %d" % (inicio, fim))
  510.              # valor=int(input(pergunta))
  511.                
  512. def recarrega():
  513.     f = open("objetos.arq", "rb")
  514.     objetos = pickle.load(f)
  515.     f.close()
  516.     return objetos
  517.  
  518. def salvaArquivos():
  519.     """
  520.    Salva a lista objetos em arquivo.
  521.    """
  522.     f = open("objetos.arq", "wb")
  523.     pickle.dump(objetos, f)
  524.     f.close()
  525.  
  526. def menu():
  527.     op = 1
  528.     while op > -1:
  529.         print('\n********************************')
  530.         print('     * Copa do mundo 2014 *')
  531.         print('********************************\n')
  532.         print("1. Ver resultados")
  533.         print("2. Ver tabela de pontos dos times ")
  534.         print("3. Inserir resultado")
  535.         print("4. Buscar Jogos")
  536.         print("5.Sair")
  537.         rodape()
  538.         try:
  539.             op = int(input("Digite a opção desejada:"))
  540.             if op < 1 or op > 5:
  541.                 print("O número digitado é inválido.Digite um número válido")
  542.             elif op == 1:
  543.                 print_resultado()
  544.             elif op == 2:
  545.                 print_tabela_pontos()
  546.             elif op == 3:
  547.                 print_grupos()
  548.             elif op == 4:
  549.                 busca_jogo()
  550.             elif op == 5:
  551.                 salvaArquivos()
  552.                 print("Saindo....")
  553.                 op = -1
  554.         except ValueError as ex:
  555.             print("Valor inválido, por favor digitar entre 1 e 5.")
  556.         except KeyboardInterrupt as kex:
  557.             print ('Erro: O usuário cancelou a operação')
  558.  
  559. if os.path.exists("objetos.arq"):
  560.     objetos = recarrega()
  561.     selecao = objetos[0]
  562.     times_oitavas = objetos[1]
  563.     times_quartas = objetos[2]
  564.     times_semifinais = objetos[3]
  565.     grupos = objetos[4]
  566.     oitavas = objetos[5]
  567.     quartas = objetos[6]
  568.     semifinal = objetos[7]
  569.     terceiro_e_quarto = objetos[8]
  570.     disputa_final = objetos[9]
  571.     atualiza_tabelas()
  572.  
  573. # entry point
  574. menu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement