Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
HURE GABRIELLE
qui-est-ce
Commits
cfc0504d
Commit
cfc0504d
authored
May 12, 2020
by
Gabrielle Huré
Browse files
modification personnage dans lecteubd et avancement avec Mickael sur la verification
parent
d68bbcfa
Changes
5
Hide whitespace changes
Inline
Side-by-side
__pycache__/lecteurbd.cpython-36.pyc
View file @
cfc0504d
No preview for this file type
__pycache__/verification_mode_jeu_1.cpython-36.pyc
View file @
cfc0504d
No preview for this file type
lecteurbd.py
View file @
cfc0504d
...
...
@@ -2,18 +2,18 @@ import pandas as pd
class
Personnage
:
def
__init__
(
self
,
numero
,
tag
,
liste
_questions
,
liste
_reponse
s
):
def
__init__
(
self
,
numero
,
tag
,
dict
_questions_reponse
):
"""
Définit un personnage.
:param numero: [string] numéro du personnage.
:param tag: [string] tag RFID associé au personnage.
:param
liste
_questions
: [liste de string] la liste des tags des questions
:param liste_reponses: [liste de int] liste des reponses aux différentes questions. 0 si faux, 1 si vrai.
:param
dict
_questions
_reponse: [dictionnaire]
"""
self
.
numero
=
numero
self
.
tag
=
tag
self
.
liste
_questions
=
liste
_questions
self
.
liste_reponses
=
liste_reponses
self
.
dict
_questions
_reponse
=
dict
_questions
_reponse
class
Question
:
...
...
@@ -51,13 +51,13 @@ class LecteurBd:
liste_personnage
=
[]
for
idx_ligne
,
ligne
in
db_personnages
.
iterrows
():
reponse
=
[]
dict_questions_
reponse
=
{}
for
idx_col
,
valeur
in
enumerate
(
ligne
):
if
idx_col
>=
1
:
reponse
.
append
(
valeur
)
dict_questions_reponse
[
db_personnages
.
columns
.
values
[
idx_col
]]
=
valeur
liste_personnage
.
append
(
Personnage
(
numero
=
idx_ligne
,
tag
=
ligne
[
0
],
liste
_questions
=
db_personnages
.
columns
[
1
:],
liste_reponses
=
reponse
))
dict
_questions
_reponse
=
dict_questions_reponse
))
return
liste_personnage
def
__lecture_questions
(
self
):
...
...
@@ -81,7 +81,4 @@ if __name__ == '__main__':
for
p_index
,
perso
in
enumerate
(
lecteur_bd
.
liste_personnages
):
print
(
"perso n° "
,
perso
.
numero
)
print
(
"tag : "
,
perso
.
tag
)
for
q
in
perso
.
liste_questions
:
print
(
q
)
for
r
in
perso
.
liste_reponses
:
print
(
r
)
print
(
perso
.
dict_questions_reponse
)
main.py
View file @
cfc0504d
...
...
@@ -13,11 +13,15 @@ lecteur_bd = LecteurBd(chemin_bd)
"""
Creation liste de capteurs et tags lu pour un exemple
"""
tag
=
[
"0001q"
,
"0002q"
,
"0003q"
,
"0004q"
,
"0005q"
,
"0006q"
,
"0007q"
,
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"
]
capteurs
=
[]
for
i
in
range
(
1
,
16
):
capteurs
.
append
(
Capteur
(
i
,
tag
[
i
-
1
]))
capteurs
.
append
(
Capteur
(
i
,
tag
_faux
[
i
-
1
]))
"""
Test de la vérification
...
...
@@ -27,13 +31,18 @@ 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 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
)
# 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_personnages
()
verification_mode_jeu_1.py
View file @
cfc0504d
...
...
@@ -13,7 +13,7 @@ class VerificationModeJeu1:
self
.
liste_tags
=
liste_tags
self
.
nb_etage
=
self
.
__calcul_nb_etages
()
self
.
nb_questions_souhaitees
,
self
.
nb_personnages_souhaitees
=
self
.
__calcul_nb_questions_nb_personnages
()
self
.
resultat_
placement_tag
s
=
[
-
1
]
*
len
(
self
.
liste_tags
)
self
.
resultat_
led
s
=
[
-
1
]
*
(
len
(
self
.
liste_tags
)
-
1
)
self
.
liste_objects_lus
,
self
.
liste_index_personnage
,
self
.
liste_index_questions
=
self
.
_association_tags_lu_avec_bd
()
def
__calcul_nb_etages
(
self
):
...
...
@@ -40,7 +40,6 @@ class VerificationModeJeu1:
for
index
,
capteur
in
enumerate
(
self
.
liste_tags
):
trouve
=
False
tag
=
capteur
.
tag_lu
print
(
tag
)
for
question
in
self
.
liste_questions
:
if
tag
==
question
.
tag
:
liste_objects_lus
.
append
(
question
)
...
...
@@ -58,26 +57,72 @@ class VerificationModeJeu1:
liste_objects_lus
.
append
(
None
)
return
liste_objects_lus
,
liste_index_personnage
,
liste_index_questions
def
verification_questions
(
self
):
for
index
in
range
(
0
,
self
.
nb_questions_souhaitees
):
if
isinstance
(
self
.
objets_lus
[
index
],
Question
):
self
.
resultat_placement_tags
[
index
]
=
1
def
validite_branche_recursif
(
self
,
index
,
validite
):
if
index
in
self
.
liste_index_personnage
:
index_suivant
=
(
index
+
1
)
*
2
if
index_suivant
<
len
(
self
.
liste_tags
):
if
self
.
liste_objects_lus
[
index_suivant
]:
#if not None
validite
[
index_suivant
]
=
0
else
:
validite
[
index_suivant
]
=
-
1
if
self
.
liste_objects_lus
[
index_suivant
-
1
]:
validite
[
index_suivant
-
1
]
=
0
else
:
validite
[
index_suivant
-
1
]
=
-
1
index_precedent
=
math
.
floor
((
index
+
1
)
/
2
)
-
1
if
index_precedent
in
self
.
liste_index_questions
:
validite
[
index_precedent
]
=
1
else
:
validite
[
index_precedent
]
=
0
if
index_precedent
!=
0
and
index_precedent
in
self
.
liste_index_questions
:
validite
=
self
.
validite_branche_recursif
(
index_precedent
,
validite
)
return
validite
def
verification_personnages
(
self
,
index_personnage
,
validite_branche
):
compte_faux
=
0
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
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
impaire_precedent
=
bool
((
index
+
1
)
%
2
)
return
index_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
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
)
if
perso_correspond_questions
==
True
:
# si chemin completement bon
self
.
resultat_leds
[
index_personnage
-
1
]
=
1
for
index
in
validite_branche
:
if
index
>
0
:
self
.
resultat_leds
[
index
-
1
]
=
1
else
:
self
.
resultat_placement_tags
[
index
]
=
0
# continuer
def
validite_branche_recursif
(
self
,
index
):
if
index
in
self
.
liste_index_personnage
:
if
index
*
2
def
verification_personnages
(
self
):
for
index_personnage
in
self
.
liste_index_personnage
:
# aller voir tous les personnages
validite_branche
=
self
.
validite_branche_recursif
(
index_personnage
)
# dictionaire de validité des elements de la branche acrochée au personnage
#liste_des_validation_branche.append(validite)
return
liste_des_validation_branche
...
...
@@ -99,14 +144,6 @@ class VerificationModeJeu1:
if not isinstance(self.objets_lus[index_objet_supperieur], Question):
self.resultat_placement_tags[index] = 0
break"""
""" continuer verification !!!"""
if
__name__
==
'__main__'
:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment