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:
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.