Commit 7cbd4747 authored by Gabrielle Huré's avatar Gabrielle Huré
Browse files

info leds rempli

parent 7c209fa9
......@@ -16,9 +16,9 @@ Creation liste de capteurs et tags lu pour un exemple
tag_ok = ["0001q", "0002q", "0003q", "0004q", "0005q", "0006q", "0007q",
"0001p", "0002p", "0003p", "0004p", "0005p", "0006p", "0007p", "0008p"]
tag_faux = ["0001q",
"0002q", "0003q",
"0004q", "0005q", "0006p", "0007q",
"0001p", "0002p", "0003p", "0004p", "0005p", "0006q", "0007p", "0008p"]
"", "0001p",
"0003q", "", "0004q", "0003p",
"0005q", "0004p", "0006q", "0005p", "0007q", "0006p", "0008q", "0007p"]
capteurs = []
for i in range(1, 16):
capteurs.append(Capteur(i, tag_faux[i - 1]))
......@@ -31,18 +31,13 @@ print("nb étage = {}".format(verif.nb_etage))
print("nb questions souhaitées =", verif.nb_questions_souhaitees)
print("nb perso souhaitées = ", verif.nb_personnages_souhaitees)
# print("résultat avant verification :")
# for res in verif.resultat_placement_tags:
# print(res)
print("résultat apres verification des potentielles question:")
# verif.verification_questions()
# for res in verif.resultat_placement_tags:
# print(res)
liste_des_validation_branche = verif.verification_globale()
for nb, validation_branche in enumerate(liste_des_validation_branche):
print(nb, validation_branche)
verif.verification_globale()
print("leds:")
for idx, valeur in enumerate(verif.resultat_leds):
print(idx, "-->", valeur)
......@@ -70,12 +70,14 @@ class VerificationModeJeu1:
else:
validite[index_suivant - 1] = -1
index_precedent = math.floor((index + 1) / 2) -1
index_precedent = math.floor((index + 1) / 2) - 1
if index_precedent in self.liste_index_questions:
validite[index_precedent] = 1
else:
elif index_precedent in self.liste_index_personnage:
validite[index_precedent] = 0
else:
validite[index_precedent] = -1
if index_precedent != 0 and index_precedent in self.liste_index_questions:
validite = self.validite_branche_recursif(index_precedent, validite)
......@@ -83,67 +85,85 @@ class VerificationModeJeu1:
def verification_personnages(self, index_personnage, validite_branche):
compte_faux = 0
verification_question_personnage = {}
personnage = self.liste_objects_lus[index_personnage]
impaire_precedent = bool((index_personnage + 1) % 2)
for index in validite_branche:
if index < index_personnage:
if validite_branche[index] == 0:
return index_personnage, False
return {}, False
if self.liste_objects_lus[index] is None:
verification_question_personnage[index] = -1
return verification_question_personnage, False
tag_question = self.liste_objects_lus[index].tag
if (personnage.dict_questions_reponse[tag_question] == 0 and not impaire_precedent)\
or (personnage.dict_questions_reponse[tag_question] == 1 and impaire_precedent):
compte_faux += 1
verification_question_personnage[index] = 0
else:
verification_question_personnage[index] = 1
impaire_precedent = bool((index + 1) % 2)
return index_personnage, compte_faux == 0
return verification_question_personnage, compte_faux == 0
def verification_globale(self):
# liste_des_validation_branche = []
for index_personnage in self.liste_index_personnage: # aller voir tous les personnages
print("index perso : ", index_personnage)
validite = {}
validite_branche = self.validite_branche_recursif(index_personnage, validite) # dictionaire de validité des elements de la branche acrochée au personnage
perso_correspond_questions = self.verification_personnages(index_personnage, validite_branche)
print(validite_branche)
verification_question_personnage, perso_correspond_questions = self.verification_personnages(index_personnage, validite_branche)
print(verification_question_personnage)
print(perso_correspond_questions)
if perso_correspond_questions == True: # si chemin completement bon
self.resultat_leds[index_personnage - 1] = 1
for index in validite_branche:
if index > 0:
if 0 < index < index_personnage:
self.resultat_leds[index - 1] = 1
if index > index_personnage:
self.resultat_leds[index - 1] = 0
else:
# continuer
#liste_des_validation_branche.append(validite)
return liste_des_validation_branche
"""
for index in range(self.nb_questions_souhaitees,
self.nb_questions_souhaitees + self.nb_personnages_souhaitees):
print("index perso", index, "-->", index + 1)
if not isinstance(self.objets_lus[index], Personnage): # est-ce bien un personnage ?
self.resultat_placement_tags[index] = 0
continue
if len(verification_question_personnage) == 0: # si branche comporte des élements qui ne doivent pas être de ce type
dernier_index_de_branche = list(validite_branche.keys())[-1]
self.resultat_leds[index_personnage - 1] = 0
for index in validite_branche:
if index != dernier_index_de_branche:
self.resultat_leds[index - 1] = 0
elif -1 in verification_question_personnage.values():
self.resultat_leds[index_personnage - 1] = -1
for index in validite_branche:
if 0 < index < index_personnage:
self.resultat_leds[index - 1] = -1
if index > index_personnage:
self.resultat_leds[index - 1] = 0
else: # si branche comporte des élements qui sont du bon type mais qu'il y a des erreurs par rapport aux réponses aux questions
self.resultat_leds[index_personnage - 1] = 0
for index in validite_branche:
if 0 < index < index_personnage:
self.resultat_leds[index - 1] = 1
if index > index_personnage:
self.resultat_leds[index - 1] = 0
for index_led in [i for i, j in enumerate(self.resultat_leds) if j == -1]: # pour tous les index où les led == -1:
print("indexled:", index_led)
print(type(self.liste_objects_lus[index_led + 1]))
if isinstance(self.liste_objects_lus[index_led + 1], Question): # si l'objet à (index_led + 1) une question:
print("est une question")
debut = len(self.liste_tags) - 2 ** (self.nb_etage - 1) # si 4 etages : 15 - 2^(4-1) = 15 - 8 = 7
fin = len(self.liste_tags) # si 4 étages : 15
if (index_led + 1) in range(debut, fin): # si (index led + 1) sur la dernière ligne
print("est sur dernière ligne")
self.resultat_leds[index_led] = 0 # mettre led à index_led = 0
# else:
# print("n est pas sur dernière ligne")
# self.resultat_leds[index_led] = 1 # mettre led à index_led = 1
# cas où rien est posé a milieu de l'arbre !!!! alors toute la branche est à -1
for puissance in range(1, self.nb_etage):
index_objet_supperieur = math.floor((index + 1)/(2 ** puissance))-1
print("obj supp = ", index_objet_supperieur, "-->", index_objet_supperieur + 1)
# si objets sources ne sont pas des questions alors l'object n'est pas bien placé
if not isinstance(self.objets_lus[index_objet_supperieur], Question):
self.resultat_placement_tags[index] = 0
break"""
if __name__ == '__main__':
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment