Tjoar... Habe hier mal einen Minesweeper-Klon in Tkinter geschrieben, den ich einfach mal hier vorstellen möchte und würde mich über Kritik und Verbesserungsvorschläge freuen^^.
Der Grund zum Programmieren des Spiels ist eigentlich ziemlich simpel: Ich wollte eine leichtgewichtige Minesweeper-Variante für Linux programmieren, da die Linux-Versionen davon das System mit Bibliotheken zumüllen, die ich sonst nie brauchen werde^^. Außerdem wollte ich sowieso schon immer mal Minesweeper nachprogrammieren, war mir aber nie sicher, wie ich das in rein prozeduralen Programmiersprachen (QBasic :\ ) machen sollte... Wie es der Zufall will, war ich grade sowieso dabei, meine Python-Kenntnisse aufzufrischen.
Als Ergebnis ist ein IMHO einigermaßen leicht durchschaubares Programm herausgekommen, über das sogar ich mich nach ein wenig Umschauen wieder zurechtfinde^^. Ich hab hier ja schon einige Threads bzgl. OOP und MVC erstellt (alle mehrere Monate alt), habe aber das Gefühl, es diesmal wirklich verstanden und einigermaßen sauber umgesetzt zu haben^^.
Zum Quellcode (und ein bisschen MVC-Fachchinesisch): Der ist in models, views, controls gegliedert mit entsprechenden Aufgaben. Der Viewer ist "nur" Beobachter, sendet Events aus und empfängt sonst ausschließlich vom Controller. Das Modell wäre ggf. komplett austauschbar... Und ich habe beim Programmieren selber gemerkt, wie leicht sich Änderungen im View umsetzen lassen, und diese mit minimalsten Änderungen im Controller auch gleich einsetzbar sind. Dass das Modell komplett unabhängig vom Viewer und vom Controller agiert, war auch enorm hilfreich (wenn man das Modell mit einer hingeschluderten und nur für Programmierer bedienbaren View komplett auf Herz und Nieren testen kann, erübrigt sich das beim "endanwendertauglichen" Viewer und Controller - wenn dann noch Fehler passieren, kann man sicher sein, dass diese nicht am Modell liegen)...
Zum Schluss fehlt zwar noch ein bisschen Feinschliff in der Bedienung, aber ansonsten bin ich mit dem Programm aber absolut zufrieden. Für mich momentan gleichzeitig das komplexeste und übersichtlichste, was ich bisher programmiert habe^^. (Sorry, ich hab in den letzten 3 Tagen fast nichts anderes gemacht außer programmiert, ich brauch das grade

Bevor ich noch mehr seltsame Sachen schreibe, stelle ich mal den Quellcode hier rein^^.
Achja: Quellcode wurde unter Python 2.7 und 3.4 erfolgreich unter Windows 8.1 64bit getestet; ich hab grad weder Linux noch Macs zur Hand, sehe aber keinen Grund, weshalb es darauf nicht laufen soll.
Liste auf gist.github.com mit allen Quelldateien
Direktdownload, auch von gist.github.com (die generieren seltsame Dateinamen, einfach nicht beachten^^)
Gruß,
Astorek
EDIT: Ich schicke einfach noch einen kleinen Screenshot hinterher^^:
