Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf8 -*-
- import copy
- # 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)
- # Chapeau 1: Equipe, Pays, "Déjà tiré"
- chap1 = [['Schalke','GER',False],
- ['Dortmund','GER',False],
- ['Bayern','GER',False],
- ['Malaga','ESP',False],
- ['Barcelone','ESP',False],
- ['PSG','FRA',False],
- ['Juventus','ITA',False],
- ['Manchester','UK',False]]
- # Chapeau 2
- chap2 = [['Arsenal','UK',False],
- ['Madrid','ESP',False],
- ['Valence','ESP',False],
- ['Milan','ITA',False],
- ['Celtic','ECO',False],
- ['Porto','POR',False],
- ['Shaktior','UKR',False],
- ['Galatasarai','TUR',False]]
- # Initialisation du nbre de combinaison
- result = 0
- # Fonction principale (récursive)
- def tirage(c1,c2,cpt=0):
- # Compteur de tour
- cpt += 1
- #print 'Cpt:',cpt
- for e1 in c1:
- # Elimine les équipes du c1 déjà sélectionnées
- if e1[2]:
- continue
- # Equipe 1 sélectionnée
- e1[2] = True
- for e2 in c2:
- # Elimine les équipes du c2 déjà sélectionnées
- if e2[2]:
- continue
- # Elimine les rencontres entre équipes venant du même groupe
- if c1.index(e1) == c2.index(e2):
- continue
- # Elimine les rencontres entre équipes venant du même pays
- if e1[1] == e2[1]:
- continue
- # Equipe 2 sélectionnée
- #print e1[0]+'/'+e2[0]
- # Si il reste encore des rencontres à tirer:
- if cpt < 8:
- # Copie des chapeaux pour ne pas les altérer
- c1bis = copy.deepcopy(c1)
- c2bis = copy.deepcopy(c2)
- c2bis[c2.index(e2)][2] = True
- if tirage(c1bis,c2bis,cpt):
- return False
- else:
- global result
- result += 1
- print 'Result:',result
- return True
- # Plus de combinaison possible
- return False
- # Exécution de la fonction avec les 2 chapeaux
- tirage(chap1,chap2)
- print "\nNbre de combinaisons possibles:",result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement