# Klassen zur Modellierung einer Lernkarte # Autor: KB # Datum: 16.06.09 # Deklaration der Klasse Karte class Karte(object): def __init__(self, stichwort, erlaeuterung): self.stichwort = stichwort self.erlaeuterung = erlaeuterung # Deklaration der Klasse Kartenstapel class Kartenstapel(object): def __init__(self): self.karten = [] def getKarte(self, index): if index > -1 and index < len(self.karten): return self.karten[index] else: return None def getMaxIndex(self): return len(self.karten)-1 def karteHinzufuegen(self, stichwort, erlaeuterung): self.karten = self.karten + [Karte(stichwort, erlaeuterung)] def karteLoeschen(self, index): if index >= 0 and index <= self.getMaxIndex(): self.karten = self.karten[0:index] + \ self.karten[(index+1):len(self.karten)] def kartenstapelToString(self): text = '' + '\n' text = text + '' + '\n' for karte in self.karten: text = text + '' + '\n' text = text + '' + '\n' text = text + karte.stichwort + '\n' text = text + '' + '\n' text = text + '' + '\n' text = text + karte.erlaeuterung + '\n' text = text + '' + '\n' text = text + '' + '\n' text = text + '' + '\n' return text def stringToKartenstapel(self, quelltext): stringliste = quelltext.splitlines() self.karten = [] i = 2 while stringliste[i] == '': stichwort = stringliste[i+2] erlaeuterung = stringliste[i+5] self.karten = self.karten + [Karte(stichwort, erlaeuterung)] i = i + 8 # Deklaration der Klasse Kartenmanager class Kartenmanager(object): def __init__(self): self.kartenstapel = None self.indexAktuelleKarte = -1 def setKartenstapel(self, kartenstapel): self.kartenstapel = kartenstapel def anfangKartenstapel(self): if self.kartenstapel.getMaxIndex() > -1: self.indexAktuelleKarte = 0 def endeKartenstapel(self): if self.kartenstapel.getMaxIndex() > -1: self.indexAktuelleKarte = self.kartenstapel.getMaxIndex() def weiterKartenstapel(self): if self.kartenstapel.getMaxIndex() > -1 and \ self.indexAktuelleKarte < self.kartenstapel.getMaxIndex(): self.indexAktuelleKarte = self.indexAktuelleKarte + 1 def zurueckKartenstapel(self): if self.kartenstapel.getMaxIndex() > -1 and \ self.indexAktuelleKarte > 0: self.indexAktuelleKarte = self.indexAktuelleKarte - 1 def aktuelleKarteLoeschen(self): if self.kartenstapel.getMaxIndex() > -1: self.kartenstapel.karteLoeschen(self.indexAktuelleKarte) if self.indexAktuelleKarte > self.kartenstapel.getMaxIndex(): self.indexAktuelleKarte = self.indexAktuelleKarte - 1 def karteHinzufuegen(self, stichwort, erlaeuterung): self.kartenstapel.karteHinzufuegen(stichwort, erlaeuterung) self.indexAktuelleKarte = self.kartenstapel.getMaxIndex() def getAktuelleKarte(self): if self.indexAktuelleKarte >= 0 and \ self.indexAktuelleKarte <= self.kartenstapel.getMaxIndex(): return self.kartenstapel.getKarte(self.indexAktuelleKarte) else: return None