Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Tetris am effektivsten programmieren (https://www.delphipraxis.net/163688-tetris-am-effektivsten-programmieren.html)

8bit Liebhaber 11. Okt 2011 15:30

Tetris am effektivsten programmieren
 
Hallo DP,

habe euch per Google gefunden, über folgendes: http://www.delphipraxis.net/85690-%5...le-tetris.html.

Zuerst muss ich sagen, dass ich schon Delphi kann, also bitte keine Antworten wie: Lern doch erstmal die Grundlagen.

Also und zwar möchte ich ein Tetris programmieren. Wieso das? Naja weils schon soviele gibt und ich mein eigenes machen möchte und später vielleicht mal etwas besonderes bekommen soll. Geschwindigkeit abhängig vom Puls des Spielers :twisted:

Naja nun stehe ich vor dem Problem, wie ich das am besten programmiere. Ich dachte an ein Array mit den Steinen und dabei dann zum Beispiel die Form des Blockes und jeder Block hat dann im Array eine andere Zahl. Also Ls sind dann 1, Js die 2, usw. Dann überprüfen, ob das gültig ist und dann noch alle Reihen durchgehen, ob eine ungleich 0 ist.

Ein weiteres ist die Anzeige. Wie stell ich das am besten dar? Am liebsten sollte später dann noch unten so eine Vorschau sein, wie der Block dann liegt. Also einfach die Umrisse unten noch mal über den schon gesetzten Blöcken.

Wäre nett, wenn mir jemand helfen könnte und mir ein bisschen Tipps geben könnte, wie ich das am besten anstelle.


Mit freundlichen Grüßen

8bit Liebhaber der gerade Tetrismusik hört. :stupid:

DeddyH 11. Okt 2011 15:53

AW: Tetris am effektivsten programmieren
 
Hallo und Willkommen in der DP :dp:,

Du solltest für Dich selbst abklären, ob z.B. die Steine über eine eigene Zeichenfläche verfügen sollen oder das Spielfeld alles zeichnet. Vorausgesetzt, Spielfeld und Steine sollen jeweils eigene Klassen sein, was sich IMO anbietet. Dann solltest Du Dir Gedanken über die Schnittstelle zwischen diesen beiden Klassen machen, denn irgendwie müssen sie ja Informationen austauschen. Das sind jetzt nur meine groben Vorgedanken, aber diese Punkte sollten zuerst geklärt werden. Übrigens würde ich für die Art der Steine einen eigenen Datentyp deklarieren, das macht den Code lesbarer.

Namenloser 11. Okt 2011 15:56

AW: Tetris am effektivsten programmieren
 
Also ich habe mal eins programmiert und es dabei so gemacht:

Jeder „Block“ ist selbst ein 4×4-Array. In diesem Array sind jeweils die Felder 1, die einen Kasten darstellen, die leeren Felder 0. So wäre z.B. der L-Block:
Code:
1000
1000
1100
0000
Der Vorteil bei 4×4 ist, dass du die Teile sehr einfach mithilfe eines Algorithmus drehen kannst (den kannst du mithilfe von Stift und Papier und 5 Minuten nachdenken selbst leicht herausfinden ;) ).

Die Kollisionsprüfung gestaltet sich durch das Array ebenfalls einfach.

Wenn eine Kollision festgestellt wurde, wird der Inhalt des Block-Arrays in das Spielfeld-Array geschrieben und das Block-Array zurückgesetzt/mit dem nächsten Block gefüllt.

8bit Liebhaber 11. Okt 2011 16:44

AW: Tetris am effektivsten programmieren
 
Naja, ich würde es so machen, dass das Spielfeld alles zeichnet. Doch wenn ich die Blöcke in eigene Klassen unterteile, wie erkenne ich dort dann die genaue Position?

@Namenlozer: Bei der Methode wie mache ich das dann beim zeichnen mit den unterschiedlichen Farben pro Block?

DeddyH 11. Okt 2011 17:06

AW: Tetris am effektivsten programmieren
 
Spendier den Blöcken eine X- und eine Y-Property für die Position, ebenso wie eine für die Farbe. Das Spielfeld wertet diese dann aus und zeichnet entsprechend.

Bjoerk 11. Okt 2011 17:53

AW: Tetris am effektivsten programmieren
 
Sehr einfach geht es, wenn die Spielfelder Labels sind.

Edit: Ist Blödsinn, mit 4 gewinnt verwechselt, sorry!


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz