Tutorial – Como hacer un Tetris

tetris-logoEste documento expone una guía de implementación de un juego tipo Tetris. Para su implementación se ha utilizado el lenguaje C++ y si bien se hace un uso de un motor de juegos específico, fácilmente se podría convertir el ejemplo para hacer uso de cualquier otra librería.

El diagrama de clases

tetris-fig1-uml

Game: Clase padre de la clase principal de juego. Perteneciente al motor de juego empleado (todo juego basado en este motor debe poseer una clase que definida a partir de Game).

TestGame: Clase principal del juego, encargada de inicializar el tablero y las piezas que en él intervienen.

BoardMap: Clase que representa el tablero donde se desarrolla el juego. Principalmente encapsula un array de dos dimensiones de tamaño especificado por parámetros constantes.

Piece: Representa una pieza.

GameLogic: Encapsula las reglas del juego.

Las piezas del juego

Todas las piezas se definen mediante mediante un array. Este array – del tipo unsigned char – posee en su primer posición el tamaño de lado de la pieza ¿Qué significa esto? Veamos las distintas piezas que posee el juego:

tetris-fig2-square

Pieza cuadrada, posee dos casilleros de lado. Por lo tanto el array que la define poseerá la siguiente información:

{2, 1, 1, 1, 1}

El primer 2 indica que la pieza posee dos casilleros de lado. Los siguientes unos codifican la forma de la pieza. Estos cuatro unos serán interpretados como una matriz de 2×2 por parte del juego.

tetris-fig3-piece

Esta pieza posee tres casilleros de lado. Todas las piezas serán creadas dentro de una matriz cuadrada debido al modo en el cual se encuentra implementada la rotación de las fichas. El modo en el cual será definido el array para esta pieza será el siguiente:

{3, 0, 0, 0, 0, 1, 0, 1, 1, 1}

La información siguiente al tamaño de lado de la pieza, codifica su forma del siguiente modo:

tetris-fig4

Luego, el resto de las piezas se definen de modo análogo:

tetris-fig5

Compartir:
  • Twitter
  • Facebook
  • MySpace
  • BarraPunto
  • del.icio.us

Pages: 1 2 3

Comments

  1. Meldron
    February 14th, 2007 | 23:13

    Justo lo que necesitaba. Hace poco que estoy con la programacion de juegos.
    Muy interesante el tutorial.
    Saludos

  2. VCO
    February 15th, 2007 | 10:02

    espero que haya mas tutoriales de este tipo (con el motor de zakengine, claro) para que nos ayuden a nosotros, los que estamos en los primeros pasos en el desarrollo de juegos y a veces caemos en un pozo imposible de salir.
    Yo debo el tetris todavía porque no sé por donde empezar, esto puede ser el hilo que buscaba

  3. February 19th, 2007 | 18:28

    [...] A traves de fuzzyGameDev encontramos una guía de implementación de tetris basada en el lenguaje C++,y aunque se utilize una librería grafica especifica se puede entender el concepto facilmente. Enlace al articulo [...]

  4. July 8th, 2007 | 9:23

    [...] Guí­a de implementación para Tetris A traves de fuzzyGameDev encontramos una guí­a de implementación de tetris basada en el lenguaje C++,y aunque se utilize una librerí­a grafica especifica se puede entender el concepto facilmente. Enlace al articulo [...]

  5. MDJ
    July 17th, 2007 | 18:31

    Muy bueno el tutorial de tetris, recien empiezo con la programacion de juegos en c++, antes me dedicaba al querido div games estudio.

Leave a reply