AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Tetris am effektivsten programmieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tetris am effektivsten programmieren

Ein Thema von 8bit Liebhaber · begonnen am 11. Okt 2011 · letzter Beitrag vom 11. Okt 2011
Antwort Antwort
8bit Liebhaber

Registriert seit: 11. Okt 2011
11 Beiträge
 
#1

Tetris am effektivsten programmieren

  Alt 11. Okt 2011, 16:30
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

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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Tetris am effektivsten programmieren

  Alt 11. Okt 2011, 16:53
Hallo und Willkommen in der 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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Tetris am effektivsten programmieren

  Alt 11. Okt 2011, 16:56
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.
  Mit Zitat antworten Zitat
8bit Liebhaber

Registriert seit: 11. Okt 2011
11 Beiträge
 
#4

AW: Tetris am effektivsten programmieren

  Alt 11. Okt 2011, 17:44
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?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

AW: Tetris am effektivsten programmieren

  Alt 11. Okt 2011, 18:06
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Tetris am effektivsten programmieren

  Alt 11. Okt 2011, 18:53
Sehr einfach geht es, wenn die Spielfelder Labels sind.

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

Geändert von Bjoerk (11. Okt 2011 um 18:55 Uhr) Grund: Edit
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 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