Definición de todos los tipos de fichas

Programación retro del Commodore 64

  • Programación retro del Commodore 64
  • “Programación Retro del Commodore 64” es un blog sobre el hardware, el sistema operativo, y la programación del Commodore 64. Y más específicamente sobre programación en ensamblador. Pretende ser un blog con información de calidad, y referencia en español de la programación retro de esta maravillosa máquina.
    • Mi blog
« Publicado el: 01/10/2023 »

Bueno, pues ya sabemos definir una ficha, incluidas sus cuatro rotaciones, rotarla y moverla con el joystick 2. El siguiente paso, por tanto, va a ser definir las siete fichas que tiene el Tetris clásico:

En el fondo, se trata tan sólo de modificar el fichero tetris_ficha.c, de modo que la anterior tabla fichas_def[][], que tenía las dimensiones [rotación][bloque], ahora pasa a ser de tres dimensiones, fichas_def[][][], que son [tipo][rotación][bloque]:

De este modo, al pintar una ficha con ficha_pinta() o borrarla con ficha_borra(), no sólo tenemos que tener en cuenta la rotación y recorrer los cuatro bloques activos, sino también tener en cuenta el tipo de ficha:

Dotamos, además, una nueva función ficha_inc_tipo(), que servirá para incrementar el tipo, es decir, pasar de un tipo al siguiente. Esta función la usaremos durante las pruebas del desarrollo, ya que en el juego real el tipo de las fichas se elige aleatoriamente.

Por último, sólo queda modificar la función actualiza_ficha() del fichero tetris_main.c:

Ahora el uso del joystick 2 será así:

  • Izquierda: La ficha se mueve a la izquierda.
  • Derecha: La ficha se mueve a la derecha.
  • Arriba: Cambia el tipo de ficha.
  • Abajo: La ficha baja.
  • Disparo: La ficha rota a derechas.

De este modo ahora, usando el joystick, podemos rotar la ficha, moverla –salvo hacia arriba– e, incluso, cambiar su tipo:

Código de ejemplo: tetris03.zip