Schön das du es fertig gemacht hast. Auch gefällt mir deine Mühe daraus ein richtiges Paket zu machen. Sogar ein Introvideo ist dabei. Insgesamt kann ich behaupten das du dir viel Mühe gegeben hast und sauber gearbeitet hast.
Das es jetzt nicht das revolutionär neue Spielprinzip ist kann zwar als Kritik gewertet werden, sehe ich aber nicht so eng.
Zum Source hab ich natürlich ein paar Fragen und natürlich Anregungen. Ich bin (noch) nicht der Python Freak also sollten meine Vorschläge nicht so "abgehoben" wirken
thelittlebug hat geschrieben:
1. Highscoreliste, könnte man Ideal mit Pickle lösen, spart geschätzte 10
Zeilen und wäre einfacher zu lesen (der Code).
Hatte ich Anfangs auch so gelöst, hab dann aber einiges bezüglich sicherheits Bedenken und Pickle gelesen, unds dann umgeschrieben. Die sicherheits Probleme sollen zwar schon (wie ich später herrausgefunden habe ) seit Version 2.2? gelöst sein aber ich habs dann bei dem Textfile belassen. Ist transparent und benötigt keine weitere library.
thelittlebug hat geschrieben:
2. setgrid in Blocks zeichnet bei jeder Änderung neu, kann man das eventuell verhindern?
Könnte man ja. Aber ich glaube nicht dass es den Aufwand Wert ist.
thelittlebug hat geschrieben:
3. Du erstellst die Blöcke bei jedem Zeichenvorgang neu? Notwendig?
Nein, aber auch hier denke ich wieder das es denn Aufwand nicht Wert ist. Wäre aber Sinnvoll wenn ich etwas komplexere Blöcke hätte.
4. Mir würde es gut gefallen wenn einige Einstellungen in "Datafiles" wandern würden. Z.b. die Blockformen und Farben.
thelittlebug hat geschrieben:
5. Mehrere Geschwindigkeiten wären sehr gut.
Sprich Level wahl?
thelittlebug hat geschrieben:
6. Zeichenausgaberoutinen einführen -> Bastel dir etwas das die leidige Aufgabe des Fontsrenderings vereinfacht. Hier könnte auch das Rendern wegfallen wenn sich der Inhalt nicht geändert hat.
Da hast du absolut Recht, mit einer eigenen Text Klasse hätte ich das viel hübscher lösen können
thelittlebug hat geschrieben:
7. time.sleep(x) ist mir nicht ganz klar da sich ja pygame soweit ich weiß
auch darum kümmern kann das ein Framelimiter läuft.
Ja, aber pygame scheint busy waiting zu betreiben, und ich mags nicht wenn ein Tetris vollkommen sinnlos eine CPU voll auslastet.
thelittlebug hat geschrieben:
8. Schön wäre es noch wenn ein "halten" einer Taste einen Block weiterbewegen würde als nur 1 Feld.
Habe ews so gemacht um mehr Kontrolle zu haben. Nach dem Testen haben mir aber des öftern die Arme geschmerzt. War vielleicht doch keine so gute Entscheidung.
thelittlebug hat geschrieben:
9. ist "del intro" wirklich notwendig? Kümmert sich Python nicht sowieso selbst um sowas?
Gute Frage, hab mich mit der Garbage Collection von Python noch nicht beschäftigt. Habe es explizit gemacht aus Gewohntheit. Grosses Object welches ich sicher nicht mehr brauche - gleich explizit löschen.
thelittlebug hat geschrieben:
10. Sanftes bewegen der Blöcke, nicht "hüpfen"
Wär möglich, würde jedoch so seine Probleme bringen mit dem verschieben in Lücken.
thelittlebug hat geschrieben:
11. Kontrollierter Zufall -> Warscheinlichkeiten der Blöcke abhängig des Levels
Hm da verstehe ich denn Sinn nicht so ganz.
thelittlebug hat geschrieben:
12. Puzzle Modus
So in From eine Halbnackten Frau die dann als Hintergrund für die Blöcke verwendet wird, so das Mann versucht das Feld möglichst voll zu bekommen.
thelittlebug hat geschrieben:
13. Shader Unterstützung und hohe Auflösungen
Tetris HD, wahaha

Shader sind mit pygame wohl leider nicht möglich
Auf jeden Fall vielen dank für dein Feedback! Werde es vielleicht noch hier, sicher aber im nächsten Projekt berücksichtigen.