| @@ -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() | |||||