import random as randonnee
# Au fond, qu'est-ce qu'un légume ?
# La solution au problème s'appuie sur deux éléments :
# - Les légumes à 3 caractères n'existent pas dans la nature
# - Les légumes contenant la lettre B n'existent pas dans la nature
# L'algorithme ci-dessous utilise l'IA de la machine en lui faisant passer un interrogatoire aléatoire sur l'identité des éléments de notre bac.
def vider(bac):
def return_vrai_ou_faux(z): # renvoie vrai ou faux en fonction de si l'argument passé est un mensonge ou pas
if (z == True):
return True
elif (z == False):
return False
else:
raise Exception("Pas de panique, essayez de redémarrer votre box")
# avant de démarrer il faut s'assurer que l'IA de l'ordinateur soit bien calibrée, on fait donc quelques tests
# TODO : faire le check sur tous les types idéalement
# TODO2 : ne pas oublier d'appeler la poste pour récupérer mon colis
a = return_vrai_ou_faux(True)
if (a == bool(1)):
pass # Etape 1 : ok, vérité
b = return_vrai_ou_faux(False)
if (b == bool("")): # astuce importante
pass # Etape 2 : ok aussi, ouf, vérité
# maintenant que les tests unitaires de la fonction sont passés, on peut s'occuper de nos légumes
try:
c = return_vrai_ou_faux("Vidons le bac à légume")
except Exception:
# l'exception porte à confusion apparemment mais j'arrive pas à faire fonctionner le code sans, ça me gonfle
# je sais pas pourquoi mais ça bug si je l'enlève
d = []
for sub_item_list_elem in bac:
mensonges = []
for i in range(1, randonnee.randint(2, randonnee.randint(2, randonnee.randint(2, 10)))): # on incorpore de l'aléatoire pour brouiller les pistes, ce qui rend le rétro-engineering plus compliqué en cas de hack et met à l'épreuve l'IA de la machine
mensonges.append(return_vrai_ou_faux("B" in sub_item_list_elem) or return_vrai_ou_faux(len(sub_item_list_elem)==3))
if not all(mensonges): # si l'IA n'a pas détecté un tissu de mensonges, alors on peut considérer que l'élément est un légume
d.append(sub_item_list_elem)
return d
bac = ["IPA","FENOUIL","TOMATE","REDBULL","8.6","SALADE","POIREAUX"]
print(vider(bac))