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