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