|
|
@@ -0,0 +1,83 @@ |
|
|
|
class ChosesÀFaire: |
|
|
|
def __init__(self, contenu, fait): |
|
|
|
self.contenu = contenu |
|
|
|
self.fait = fait |
|
|
|
|
|
|
|
|
|
|
|
class PenseBête: |
|
|
|
def __init__(self): |
|
|
|
self.liste = [] |
|
|
|
|
|
|
|
def ajouter(self, choses_à_faire): |
|
|
|
self.liste.append(choses_à_faire) |
|
|
|
|
|
|
|
def supprimer(self, index): |
|
|
|
del self.liste[index - 1] |
|
|
|
|
|
|
|
def marquer_fait(self, index: int): |
|
|
|
self.liste[index - 1].fait = True |
|
|
|
|
|
|
|
def marquer_non_fait(self, index: int): |
|
|
|
self.liste[index - 1].fait = False |
|
|
|
|
|
|
|
def affiche(self): |
|
|
|
if len(self.liste): |
|
|
|
for i in range(len(self.liste)): |
|
|
|
marque = "" |
|
|
|
if not self.liste[i].fait: |
|
|
|
marque = "x" |
|
|
|
print(str(i + 1) + " [" + marque + "] " + self.liste[i].contenu) |
|
|
|
else: |
|
|
|
print("[]") |
|
|
|
|
|
|
|
|
|
|
|
def parse(entrée_utilisateur): |
|
|
|
if entrée_utilisateur != "q": |
|
|
|
e = entrée_utilisateur.split() |
|
|
|
action = e.pop(0) |
|
|
|
argument = " ".join(e) |
|
|
|
dico = { |
|
|
|
"+": "ajouter", |
|
|
|
"-": "supprimer", |
|
|
|
"o": "marquer_fait", |
|
|
|
"x": "marquer_non_fait", |
|
|
|
} |
|
|
|
try: |
|
|
|
if argument.isdigit(): |
|
|
|
argument = int(argument) |
|
|
|
return dico[action], argument |
|
|
|
except: |
|
|
|
return "erreur", "message d'erreur" |
|
|
|
else: |
|
|
|
return "quitter", None |
|
|
|
# return ("ajouter", contenu) |
|
|
|
# return ("supprimer", index) |
|
|
|
# return ("marquer_fait", index) |
|
|
|
# return ("marquer_non_fait", index) |
|
|
|
# return ("erreur", message) |
|
|
|
# return ("quitter", None) |
|
|
|
|
|
|
|
|
|
|
|
def main(): |
|
|
|
pense_bête = PenseBête() |
|
|
|
while True: |
|
|
|
entrée_utilisateur = input() |
|
|
|
action, argument = parse(entrée_utilisateur) |
|
|
|
if action == "ajouter": |
|
|
|
chose_à_faire = ChosesÀFaire(argument, True) |
|
|
|
pense_bête.ajouter(chose_à_faire) |
|
|
|
elif action == "supprimer": |
|
|
|
pense_bête.supprimer(argument) |
|
|
|
elif action == "marquer_fait": |
|
|
|
pense_bête.marquer_fait(argument) |
|
|
|
elif action == "marquer_non_fait": |
|
|
|
pense_bête.marquer_non_fait(argument) |
|
|
|
elif action == "erreur": |
|
|
|
print(argument) |
|
|
|
else: |
|
|
|
pense_bête.affiche() |
|
|
|
break |
|
|
|
pense_bête.affiche() |
|
|
|
|
|
|
|
|
|
|
|
main() |