Advertisement
Guest User

Script Stats Ligue des Champions

a guest
Dec 20th, 2012
881
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.44 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf8 -*-
  3.  
  4. import copy
  5.  
  6. # L'ordre des chapeaux est tel que les 2 équipes venant d'un même groupe ont le même indice dans le tableau (il ne peuvent pas se rencontrer)
  7.  
  8. # Chapeau 1: Equipe, Pays, "Déjà tiré"
  9. chap1 = [['Schalke','GER',False],
  10.         ['Dortmund','GER',False],
  11.         ['Bayern','GER',False],
  12.         ['Malaga','ESP',False],
  13.         ['Barcelone','ESP',False],
  14.         ['PSG','FRA',False],
  15.         ['Juventus','ITA',False],
  16.         ['Manchester','UK',False]]
  17.  
  18. # Chapeau 2
  19. chap2 = [['Arsenal','UK',False],
  20.         ['Madrid','ESP',False],
  21.         ['Valence','ESP',False],
  22.         ['Milan','ITA',False],
  23.         ['Celtic','ECO',False],
  24.         ['Porto','POR',False],
  25.         ['Shaktior','UKR',False],
  26.         ['Galatasarai','TUR',False]]
  27.  
  28. # Initialisation du nbre de combinaison
  29. result = 0
  30.  
  31. # Fonction principale (récursive)
  32. def tirage(c1,c2,cpt=0):
  33.     # Compteur de tour
  34.     cpt += 1
  35.     #print 'Cpt:',cpt
  36.     for e1 in c1:
  37.         # Elimine les équipes du c1 déjà sélectionnées
  38.         if e1[2]:
  39.                 continue
  40.         # Equipe 1 sélectionnée
  41.         e1[2] = True
  42.         for e2 in c2:
  43.                 # Elimine les équipes du c2 déjà sélectionnées
  44.                 if e2[2]:
  45.                         continue
  46.                 # Elimine les rencontres entre équipes venant du même groupe
  47.                 if c1.index(e1) == c2.index(e2):
  48.                         continue
  49.                 # Elimine les rencontres entre équipes venant du même pays
  50.                 if e1[1] == e2[1]:
  51.                         continue
  52.                 # Equipe 2 sélectionnée
  53.                 #print e1[0]+'/'+e2[0]
  54.                 # Si il reste encore des rencontres à tirer:
  55.                 if cpt < 8:
  56.                         # Copie des chapeaux pour ne pas les altérer
  57.                         c1bis = copy.deepcopy(c1)
  58.                         c2bis = copy.deepcopy(c2)
  59.                         c2bis[c2.index(e2)][2] = True
  60.                         if tirage(c1bis,c2bis,cpt):
  61.                                 return False
  62.                 else:
  63.                         global result
  64.                         result += 1
  65.                         print 'Result:',result
  66.                         return True
  67.     # Plus de combinaison possible
  68.     return False
  69.  
  70. # Exécution de la fonction avec les 2 chapeaux
  71. tirage(chap1,chap2)
  72.  
  73. print "\nNbre de combinaisons possibles:",result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement