Danke den beiden Antworten erstmal.
Dummerweise kann ich zurzeit nicht das ganze Programm reinstellen, da es auf dem Arbeitslaptop liegt, an welchen ich - wegen Virenschutz - kein externes Gerät anschliessen kann. Denn nein das war nicht das ganze Programm. Vielleicht ist es doch noch besser etwas zu der Funktion zu sagen:
Die Idee war das zufällige Abfragen von Fremdwörtern um diese schneller zu lernen, als wenn man sie von Hand schreibt. D.h. es werden beliebig viele Wortpaare in eine .txt geschrieben und die 2 Wörter von jedem Wortpaar jeweils mit einem Doppelpunkt verbunden --> hallo:hello Wie_gehts?:How_are_you? ...
Da ich mit der Objektorientierten Programmierung noch ein bisschen kämpfe, habe ich - wie es mir gesagt wurde - einfach mal "objektiv" klassen erstellt.
D.h. ich habe...
-ein "Editor"; hier werden die Abfrageübungen erstellt und falls nötig im nachhinein bearbeitet
-dann gibt es den "Player"; er fragt dich mit bestehenden Übungen ab
-um möglichst alle Fehler abzufangen hab ich noch den "InputPrüfer"; er schaut das man den gewünschten datentyp eingibt, ob die Eingabe (vorallem auf Files oder Pfade bezogen) auch gültig sind, oder das man nur zahlen in einer gewissen range eingeben kann. Neu hab ich noch die Funktion (welche ich wegen diesem Fehler bisher noch nicht testen konnte) hinzugefügt die bei jeder Eingabe prüft ob die Eingabe exit ist; wenn ja soll man zurück ins Hauptmenü Gelangen. Das ist jedoch sehr "schlampig" da ich einfach jedesmal die klasse ControlPanel() aufrufe, mir viel aber keine andere Vriante ein.
-das ControlPanel ist dann das Hauptmenü, also der Startpunkt. Es macht nichts anderes als auf die anderen Klassen zu verweisen
-Und dann eben die Configuration-Klasse. Sie dient nur als Schnittstelle zwischen Programm und Conf-txt. D.h. sie besitzt alle funktionen um die Einstellungen zu ändern (Gross-/Kleinschreibung Ein/Aus, Forwärts/Rückwärts fragen, den Pfad wo die Übungen liegen und der Pfad der eigendlichen Conf-Datei) Als erstes sollte immer diese Klasse aufgerufen werden, welche die Conf-Datei einliest und falls sie noch nicht vorhanden ist erstellt. Da man die einstellungen auch ändern kann musste ich bei der Conf-Klasse den InputProofer importieren um die Eingaben zu prüfen.
Nun ich habe ich das doofe Gefühl das ich auf der völlig falschen Spur bin. Denn wenn ich es mir genauer überlege könnte man alle Funktionen in eine einzige Klasse zusammenfügen, es würde sich nichts widersprechen. Eigenschaften hat nur die Conf-Klasse, alle anderen klassen kopieren die WorkPath-Eigenschaft von der Conf-Klasse (völlig überflüssig wenn ich es mir genau überlebe
)
Ich sehe keine Vorgaben/Regeln im objektorientierten Programmieren was es mir extrem erschwert, auf der richtigen Spur zu bleiben, denn Python gibt nicht mehr einfach eine Fehlermeldung aus wenn ich etwas falsches - oder meistens überflüssiges mache. Und bisher hat auch alles funktioniert, was mich dazu motivierte das Programm weiter auszubauen und zu perfektionieren nun stecken ca. 8-10h Arbeit und 500 Zeilen Code im Programm
Nun denn ich werd mich warscheinlich noch etwas mit Lesestoff eindecken müssen ^^
Gruss