Estoy trabajando en la codificación de un clon de Tetris en XNA C# y no estoy seguro de la mejor manera de acercarse a la estructura de datos del juego en un alto nivel.Cómo hacer un clon de Tetris?
Estoy totalmente bien con la detección de colisiones, rotaciones, animaciones, etc. Lo que necesito saber es la mejor manera de almacenar "bloques caídos", es decir, bloques que ya no están bajo el control del jugador.
Creo que cada bloque Tetromino debe almacenarse en su propia clase que consiste en una matriz de 4x4 para que el bloque pueda girarse fácilmente. El problema es cómo almacenar la posición final del tetromino en la cuadrícula del juego cortando el tetromino en bloques individuales (para cada celda) y luego establecer las posiciones correspondientes de la grilla principal del juego para mantener estos mismos bloques, y luego desaparecer el tetromino una vez ha llegado a su posición final. Tal vez haya algún inconveniente en mi método.
¿Debo crear una matriz de 10x20 para la cuadrícula principal del juego que luego pueda almacenar? o debería usar pilas o colas para almacenar de alguna manera los bloques caídos. ¿O tal vez hay alguna mejor estructura de método/datos para almacenar cosas?
Estoy seguro de que mi camino podría funcionar, pero estoy tratando de ver si alguien conoce una mejor manera o si mi camino es lo suficientemente bueno?
P.S. No es tarea, este será un proyecto para mi cartera. Gracias.
Discretamente, no estoy de acuerdo - ver mi respuesta. –
Además, no puedes hacer animaciones dulces o gravedad avanzada. Mi tablero es un montón de referencias a las piezas. Cuando se borra una línea, cada bloque cae por separado, y si se dividen o se eliminan los bits que causan colgar, las piezas caerán como deberían. –
@toast: Está muy bien decir que su respuesta no es buena. Y definitivamente puedo ver tu punto allí. Tal vez debería proporcionar una respuesta que explique cómo lo haría. –