Einzelnen Beitrag anzeigen

ShortAnni

Registriert seit: 24. Feb 2017
6 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Kippen eines 2d Arrays um 90 Grad

  Alt 24. Feb 2017, 13:37
Delphi-Version: 5
Hallo,

ich will mich hier mal kurz vorstellen. Ich lese hier schon einige Zeit mit, bin aber eigentlich immer noch Anfänger. Mit Arduinos kenne ich mich etwas besser aus. Mit Delphi habe ich erst vor ein paar Wochen angefangen, eigentlich um mit meinen Arduinos zu kommunizieren.

Jetzt zu meinem Problem, für das ich keine Lösung gefunden habe. Ich möchte ein kleines Spiel programmieren. Dazu habe ich verschiedene Bausteine die aus einem 2d Array bestehen und jede Zelle stellt eine Farbe dar.

Ich möchte die 2d Arrays kippen. Die Arrays habe immer die gleiche Anzahl von Reihen und Spalten.
In Delphi sind sieht das so aus:
Code:
Baustein1 [0 .. 2, 0 .. 2] of TColor;
Baustein2 [0 .. 3, 0 .. 3] of TColor;
Baustein3 [0 .. 4, 0 .. 4] of TColor;
.
.
Baustein2 [0 .. 15, 0 .. 15] of TColor;
So soll das aussehen wenn ich beispielsweise Baustein2 kippe. Durch Mehrfaches kippen wird der Baustein also gedreht, ähnlich wie bei Tetris.

Original
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,16

Gekippt
4,8,12,16
3,7,11,15
2,6,10,14
1,5,9,13

Ich habe jetzt schon viel dazu gelesen und auch einige Beispiele gefunden. Aber entweder passen die gar nicht oder sind in einer anderen Sprache (c#) die ich nicht gut genug verstehe um das nach Delphi zu übersetzten.

Ich wollte das ganze in etwa so aufrufen:

Code:
Baustein1 := kippen(Baustein1);
Also das das Original Array in gekippter Form vorliegt.

Hat jemand dazu ein Anfänger freundliches Beispiel in Delphi, oder gibt es evtl. schon eine fertige Funktion dafür.

Würde mich freuen wenn mir da jemand helfen kann.

LG Anni

P.S. Ich habe Delphi 10.1 in einer Schulversion

Geändert von ShortAnni (24. Feb 2017 um 13:39 Uhr)
  Mit Zitat antworten Zitat