tetris00

Tetris es un juego de computadora, originalmente diseñado y programado por Alekséi Pázhitnov en la Unión Soviética. Salió a la luz pública el 6 de junio de 1984, mientras el autor trabajaba para el Centro de Computación Dorodnitsyn de la Academia de Ciencias de la Unión Soviética en Moscú, RSFS de Rusia. El juego deriva su nombre del prefijo numérico griego tetra- (todas las piezas del juego, conocidas como Tetrominós que contienen cuatro segmentos) y del tenis, el deporte favorito de Pázhitnov.

El inventor de este juego ha sido muy celoso de su idea y la ha buscado proteger legalmente a nivel mundial. Sin embargo, lo que puede protegerse es la formas en cómo funciona el programa, no la idea en sí. Por ello hay clones de este programa que “casi” trabajan igual, pero que por asuntos legales, no se pueden ver igual que el original. Todo esto ocurre porque Tetris fue en su momento una sensación y el autor probablemente haya podido hacer un modus vivendi de la venta y licenciamiento de su juego.

En 1989, Nintendo sacó Tetris para el NES. Ahora ha salido un detallado artículo que explica la mecánica de cómo trabaja Tetris seguido de la construcción de un programa de Inteligencia Artificial que lo juegue (imagino que con éxito).

Para entender la mecánica del juego Tetris en el NES, el ROM fue explorado. El NES usa un MOS 6502, el mismo procesador de la Commodore 128 y la Apple II. Esto implicó entrarle al lenguaje de máquina de dicho procesador. El artículo muestra cómo los bloques (llamados tetriminos) son creados y cómo se mueven en la pantalla. Se examina la rutina “random”. Incluso se dan detalles de la pantalla legal y se explican los modos de demostración.

Acto seguido se analiza cómo funciona el Tetris y se da un algoritmo de inteligencia artificial. Esto está implementado en Lua dentro del emulador FCEUX NES/Famicom. Funciona evaluando todos los posibles lugares para poner cada tetrimino y elige el mejor basado en un número de criterios. El pso de cada criterio se determina usando un sistema de optimización de partículas.

tetris1

Los fuentes, en Lua y Java están disponibles en el artículo. Se tiene todo lo necesario y lo mejor, todo es gratis, excepto el ROM de Tetris. Si le interesa cómo se construían los juegos de 8 bits, la disección de este programa es lectura obligada.

Referencias:

MeatFighter