# Tetris



## jule808 (8. Jun 2012)

Hallo ihr Lieben,

ich muss grad das Spiel tetris pogrammieren und bei der Rotation hackts iwie ein bisschen.  Hierzu soll man eine Methode schreiben public Cell[][] turnCellArray(Cell[][] old) und Die bekommt ein Cell-Array übergeben und gibt dies nach rechts gedreht zurück. Als Tipp steht dabei, dass man sich dafür ein neues Cell[][] new der Länge und Breit des alten anlegen soll. Man soll das neue Cell durchlaufen und alle Zellen neu anlegen, da es nicht reichen würde die Zellen im Array zu vertauschen.

Also iwie häng ich total und finde nich mal nen wirklich brauchbaren Ansatz....wäre dankbar für jeden Rat

Liebe Grüße und Dank


----------



## Paddelpirat (8. Jun 2012)

Naja du brauchst halt ein neues Matrix-Objekt, wenn du z.B. eine 2x3 Matrix drehst, weil daraus dann eine 3x2-Matrix wird.

Beispiel:

1 2 3
4 5 6

wird zu

4 1
5 2
6 3

und diese Rotation müsstest du dann noch durchüfhren...

Vielleicht hilft das ja dabei  : 
http://www.java-forum.org/softwareentwicklung/12452-matrix-drehen.html


----------



## SlaterB (8. Jun 2012)

'finde keinen Ansatz' und 'hängen' usw. sind luftleeres Gerede, welches du dir fast immer einsparen kannst,
die Methode hat einen eindeutigen Anfang, das Erzeugen des neues Arrays,

kannst du ein neues Cell-Array mit zwei bestimmten Dimensionen anlegen, ja oder nein?
das sind doch konkrete Punkte, die man bearbeiten oder Probleme dabei mit inhaltlichen Worten beschreiben kann

die neuen Dimensionen zu finden dauert sicher mehr als 0.3 sec, der Text enthält auch dazu Hinweise
> int neueLaenge = ..;
> int neueBreite = ..;
kannst du dazu etwas ausprobieren/ überlegen, neue Fragen formulieren, die zeigen dass du daran arbeitest,
oder bleibst du letztlich beim bisherigen 'ich mache nichts, bitte für mich lösen'?


----------



## Daniel B. (14. Jun 2012)

Hehe, du bist wohl auch in GdI und hast des selbe Problem wie ich. 
Hast dus mitlerweile schon lösen können?


----------



## Paddelpirat (14. Jun 2012)

Daniel B. hat gesagt.:


> Hehe, du bist wohl auch in GdI und hast des selbe Problem wie ich.
> Hast dus mitlerweile schon lösen können?



Brauchst du es noch genauer als in dem Thread den ich verlinkt habe?!


----------



## Daniel B. (14. Jun 2012)

Ich denk so einfach is es nicht, es steht explizit im Skript:

"Hinweis: Es reicht nicht, nur die Zellen im Array zu vertauschen. Eine Zelle wird anhand ihrer x,y Werte gezeichnet, nicht anhand ihrer Position im Array."
und weiter:
"Durchlaufen Sie das neue Cell[][] und legen alle Zellen neu an. Achten Sie hierbei darauf den Zellen die x,y Werte, sowie die richtige boolean Variable und Farbe zu übergeben."


----------



## Paddelpirat (14. Jun 2012)

Klar reicht es nicht die Zellen im Array zu vertauschen, weil es wie in meinem Beispiel einmal eine 2x3 Matrix ist und einmal eine 3x2.  Die Form hat sich also verändert.

Wir reden hier von Tetris...

Edit:

Damit das ganze noch anschaulicher wird:

Du hast einen Baustein:

#
#
##


und daraus wird dann der Baustein:

###
#


----------

