philistion hat geschrieben:Da schreibt dir jemand eh schon ein auf dein Problem zugeschnittenes Beispielprogramm, lädt es auf Bitbucket rauf und du verlangst ne Rar-Datei?
Hehe, naja, zu seiner "Eherenrettung" muss man sagen, dass Mercurial ja nicht jedermans Sache ist. Dennoch würde ich wenn nur ein zip oder bzip2 codiertes Tar-Archiv irgend wo anbieten und kein rar. Ich hasse rar und: es ist imho obsolet
Mr.Wolna hat geschrieben:um , mehrere scripte?
Nee, mehrere Dateien. Die menu.py ist eher als reine Lib anzusehen, da sie nicht mal eine "main"-Funktion besitzt. Theoretisch hätte ich die Testroutine auch da rein posten können - aber dann würde der kleine Trick mit den Callbacks nicht funzen (zumindest habe ich keine Idee, wie ich das innerhalb eines Moduls hinbekommen könnte).
Mr.Wolna hat geschrieben:
edir: hm. habs grade angeschaut. Alles viel zu schwer. WEnn ich schon das aller simpelste nicht hinkrieg, dann das sicherlich nicht. Aber ich mach mir Mühe, das zu verstehen.
Hm... ja, ist vom Code schon sehr groß geworden. Allerdings ist das Kernkonzept nicht so unterschiedlich zu meiner ersten Intention: Man muss sich eine geeignete Datenstruktur für das Menü und seine Einträge ausdenken. Ich habe mich für die Kombi aus Klasse (Menü) und Dictionary (Menüitems) entschieden.
Zusätzlich hat es mich dann ein wenig "gepackt" und ich dachte, mensch, lagere doch die Menüinfos in eine Datei aus (JSON-Format), damit das ganze noch dynamischer wird. Somit kannst Du für Dein Spiel sehr einfach Menüs erstellen, ohne auch nur eine zeile Python-Code erstellen zu müssen (von den Funktionen, die durch eine Auswahl aufgerufen werden sollen mal abgesehen). Als letztes habe ich eben noch ermöglicht, dass man in der Menüdefinition schon auf eine Funktion in einem Modul verweisen kann und diese Funktion als Objekt bei der Auswahl eines Items übergeben bekommt. Das kann man natürlich auch weglassen und dieses Mapping selber in seinem Script definieren.
Da ist noch viel Luft zum Optimieren drin (alleine die Doku ist noch erbärmlich

), aber generell zeigt mein Beispiel imho schon einige nette Ideen und Konzepte in Python:
- Dictionaries
- Listen
- Persitenz (Ablegen von Daten) per JSON
- "alles ist ein Objekt" (Aufurf von action() in demo.py)
Nuja, schon ziemlich viel drin, das man auch hätte anders lösen können. Aber das ist bei komplexeren Problemen ja fast immer so
Aber mittlerweile hast Du ja selber eingesehen, dass Du erst einmal die Grundlagen kapieren musst
