Zum Thema: Ein Kumpel bat mit für unsere Lan-Partys ein kleines Skript zu schreiben, welches Teams zufällig erstellt. Das ganze fing mit einem simplen
Code: Alles auswählen
#! /bin/env python
# -*- coding: UTF-8 -*-
from random import shuffle
liste = range(int(raw_input("Anzahl Spieler: ")))
shuffle(liste)
mitte = len(liste)/2
print liste[:mitte], liste[mitte:]
Nach einiger Zeit ist dann dieser Code herausgekommen.
Meine Frage ist natürlich: Was haltet ihr von dem Code? Kritik ist gerne erwünscht, immerhin hab ich das Skript geschrieben um etwas zu lernen.
Folgende Sachen gefallen mir persönlich überhaupt nicht, ich weiß allerdings nicht wie ich das ausbessern könnte:
- OOP: Ja, das Skript besteht zum Großteil aus zwei Klassen, ich glaube aber irgendwie, dass ich das nicht wirklich im Sinne von OOP geschrieben habe:
- Es gibt keine __init__()-Methoden, da ich keinen Sinn darin sah.
- Die geplante Teilung in das eigentlichen Programm und der Benutzeroberfläche ist mir nicht wirklich gelungen. Ich hab aber keine Ahnung wie ich das beheben kann. Wie ließe sich z. B. setGroesse() aufteilen?
- Mich beschleicht das Gefühl, dass ich genau diesen Code komplett ohne Klassen hätte schreiben können. Also "bringen" mir die Klassen hier gar nichts.
- Das Setzen der x- und y-Werte in den Zeilen 42 und 43 erscheint mir sehr unschön. Die ganze Methode gefällt mir gar nicht. Leider hab ich keine bessere Idee.
- Ich weiß nicht, ob die Endlosschleife noch in die Klasse gehört oder nicht, eine Mehtode mainloop() würde auch funktionieren...
- Wenn man einen Namen mit einem Umlaut eingibt, wird dieser nicht korrekt dargestellt. Warum weiß ich nicht.
- Weiterhin musste ich auf Umlaute generell verzichten, unter Windows funktionierten sie nicht.