1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #!/usr/bin/python
# -*- coding: latin-1 -*-
from random import randrange
#Le nombre de connexion à un interrupteur par led (2 max)
led = [0, 0, 0, 0, 0]
#Tous les couples possible (éliminer les doublons)
combines = [[1,2], [1,3], [1,4], [1,5], [2,3], [2,4], [2,5], [3,4], [3,5], [4,5]]
#Les couples choisis au hasard par bouton
button = []
def removeCombineContaining(ledIndex):
i = 0
for combine in combines:
#Si la combinaison contient la ledIndex
if combine[0] == ledIndex or combine[1] == ledIndex:
#Supprimer l'élément en question
del combines[i]
i += 1
def couples():
#Parcours des 5 interrupteurs
for i in range(0, 5):
#Choisir un nombre aléatoire entre 0 et la taille du tableau
index = randrange(0, len(combines)-1)
#Choisir l'élément choisi à l'index 'index' dans les différentes combinaisons (tmp est une liste de deux)
tmp = combines[index]
#Incrémenter les compteurs de connexion pour les 2 leds
led[tmp[0]-1] += 1
led[tmp[1]-1] += 1
#Supprimer l'élément choisi de la liste de toutes les combinaisons
del combines[index]
#Si après avoir fait nos petites actions, la led 1 du couple choisi possède 2 connexions
if led[tmp[0]-1] >= 2:
#Supprimer les autres combinaisons contenant la led en question
removeCombineContaining(tmp[0])
#Si après avoir fait nos petites actions, la led 2 du couple choisi possède 2 connexions
if led[tmp[1]-1] >= 2:
#Supprimer les autres combinaisons contenant la led en question
removeCombineContaining(tmp[1])
#Une fois toutes les actions terminés, rajouter la combinaison dans le tableau des bouttons
button.append(tmp)
couples() |
Partager