http://paste.pocoo.org/show/46548/
gruss frank
Snake zum millionsten Mal !
Autovervollständigung ist schon was feines, oder hast Du tatsächlich `move_snale()` beide male "richtig" falsch geschrieben.
Ich weiss jetzt nicht, ob die `keysym_num`-Werte plattformunabhängig sind, aber mir wäre das zu "magisch".
`snake_box` und `start_button` beide mit `grid()` ohne Argumente zu platzieren ist IMHO unschön.
Es werden GUI und Programmlogik vermischt. Insbesondere das speichern von Koordinaten und Rechnen (`move()`) mit ihnen innerhalb von `Tkinter` ist eine schlechte Idee, weil bei den ganzen Umrechnungen als Fliesskommazahlen, die innerhalb von `Tk` damit angestellt werden, Rechenungenauigkeiten auftreten können. Das war erst neulich Thema hier: Problem mit coords
Ausserdem hast Du auf diese Weise eine Menge "magischer" Konstanten im Programm.
Ich weiss jetzt nicht, ob die `keysym_num`-Werte plattformunabhängig sind, aber mir wäre das zu "magisch".
`snake_box` und `start_button` beide mit `grid()` ohne Argumente zu platzieren ist IMHO unschön.
Es werden GUI und Programmlogik vermischt. Insbesondere das speichern von Koordinaten und Rechnen (`move()`) mit ihnen innerhalb von `Tkinter` ist eine schlechte Idee, weil bei den ganzen Umrechnungen als Fliesskommazahlen, die innerhalb von `Tk` damit angestellt werden, Rechenungenauigkeiten auftreten können. Das war erst neulich Thema hier: Problem mit coords
Ausserdem hast Du auf diese Weise eine Menge "magischer" Konstanten im Programm.
Danke BlackJack !
Das mit dem Snale und Snake habe ich durchweg falsch gemacht - meine Freundin wollte aber ein schnelles Spiel und hat mich darauf hingewiesen, dass ich mal einen Volkshochschulkurs besuchen sollte.
Die Trennung Gui und Logik war mir schon fast klar.
Die Problematik mit den Floats ist mir schon bei der Zufallsposition fuer das Schlangenfutter aufgefallen. Schreibe es mal um und poste es.
gruss frank
Das mit dem Snale und Snake habe ich durchweg falsch gemacht - meine Freundin wollte aber ein schnelles Spiel und hat mich darauf hingewiesen, dass ich mal einen Volkshochschulkurs besuchen sollte.
Die Trennung Gui und Logik war mir schon fast klar.
Die Problematik mit den Floats ist mir schon bei der Zufallsposition fuer das Schlangenfutter aufgefallen. Schreibe es mal um und poste es.
gruss frank
Hallo !
Mal mit Trennung von Gui und Logik - muesste ich jetzt bei der Uebergabe alles in "int()" umwandeln ?
http://paste.pocoo.org/show/47486/
gruss frank
Mal mit Trennung von Gui und Logik - muesste ich jetzt bei der Uebergabe alles in "int()" umwandeln ?
http://paste.pocoo.org/show/47486/
gruss frank
Die Trennung sehe ich da nicht. Man kann mit der Klasse `Snake` das Spiel nicht spielen. Ausserdem werden da GUI-Koordinaten verwendet und keine Spielkoordinaten.
Danke BlackJack !
AHA - jetzt stehe ich gerade auf dem Schlauch. Habe eine kleine Vorahnung - nur die Umsetzung ist mir noch nicht so ganz klar. Steuerung / Spielfeld / die Zeichnung der Schlange in die Klasse Snake() und diese veraendert die Klasse Snake_Gui() ?
gruss frank
AHA - jetzt stehe ich gerade auf dem Schlauch. Habe eine kleine Vorahnung - nur die Umsetzung ist mir noch nicht so ganz klar. Steuerung / Spielfeld / die Zeichnung der Schlange in die Klasse Snake() und diese veraendert die Klasse Snake_Gui() ?
gruss frank
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein. ``Snake_GUI`` steuert ``Snake`` fern. Das heißt vereinfacht, du steuerst ``Snake_GUI`` und ``Snake_GUI`` steuert ``Snake``. Jedoch weiß und sollte ``Snake`` nichts davon wissen müssen, wer es steuert, ob es nun der Spieler selbst ist, oder die GUI.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hier auch noch einmal:
Code: Alles auswählen
def move_snake(self, event):
if event.keysym_num == 65362:
self.snake.set_move_direction(0, -10)
elif event.keysym_num == 65364 :
self.snake.set_move_direction(0, 10)
elif event.keysym_num == 65363 :
self.snake.set_move_direction(10, 0)
elif event.keysym_num == 65361:
self.snake.set_move_direction(-10, 0)
# Als Tabelle:
def move_snake(self, event):
try:
self.snake.set_move_direction(*{
65362 : (0, -10),
65364 : (0, 10),
65363 : (10, 0),
65361 : (-10, 0),
}[event.keysym_num])
except KeyError:
pass
Hallo !
Snake mit Wii als joypad.
http://paste.pocoo.org/show/85578/
gruss frank
edit: Beim Start an dem Wii-Controller die Tasten 1&2 druecken !
Snake mit Wii als joypad.
http://paste.pocoo.org/show/85578/
gruss frank
edit: Beim Start an dem Wii-Controller die Tasten 1&2 druecken !
Hallo !
Noch einige Veraenderungen gemacht und Vibration eingebaut.
http://paste.pocoo.org/show/85604/
gruss frank
Noch einige Veraenderungen gemacht und Vibration eingebaut.
http://paste.pocoo.org/show/85604/
gruss frank