1 of 17

PROYECTO TETRIS CON PYTHON

Itzíar López Gracia 2º Bach B

2 of 17

INTRODUCCIÓN:

Mi planteamiento sobre el proyecto a realizar ha sido crear un Tetris a partir de la librería Turtle en Python.

En primer lugar intente otras ideas y juegos utilizando la librería Pygame, pero como no obtenía ningún resultado de esta, buscando finalmente encontre el uso de turtle para realizar el juego de tetris.

La librería turtle sirve para formar figuras geométricas de una forma sencilla, por lo que facilita la creación de las piezas del juego, y además permite mover estos objetos mediante una especie de cuadrícula, a través de la cual en estos casos se moverán las piezas.

Se pueden incluso crear figuras geométricas como esta.

3 of 17

PROCESO:

En primer lugar para importar la librería de turtle me informé en esta página. Para crear la ventana de juego utilicé un vídeo explicativo de turtle donde se crea el juego snake.

Una vez creada la ventana encontré un video donde programaban tetris con turtle en python, decidí usarlo y mi trabajo está basado en este vídeo. A través de la descripción del vídeo habían dejado una página con el programa del juego, por lo que con la ayuda de la breve explicación del video y la página del programa cree el juego.

Algunos de los comandos del programa no los entendía por lo que use una página en la cual se explicaban algunos de estos.

4 of 17

Por otro lado para poder cambiar la forma del texto me informé de como hacerlo en esta página.

Cuando ya estaba creado todo lo que era el programa del juego decidí intentar ponerle música, para esto me informe en esta página, en la cual aparecen diferentes formas, ninguna de ella funcionaba pero la que dejé escrita en el programa es la primera que aparece ya que no da ningún error aunque no se escuche.

Con esto el programa ya está completo aunque sí que podemos observar algunos errores además de que la música no se escuche.

5 of 17

PLANTEAMIENTO INICIAL:

Como ya he nombrado antes al principio use la librería de pygame, con esta tuve varios problemas al intentar crear el juego breakout. Estos comenzaban al no poder crear la ventana donde se abriría el juego, como además no entendía muy bien esta librería decidí buscar otra opción donde al final encontré la librería de turtle que parecía algo más sencilla.

Los programas en los que intente usar pygame están guardados por lo que aparecerán en mi web.

Para intentar realizar este juego me basé en páginas como esta con el código de juego o esta en la que explican las principales ideas sobre la librería.

6 of 17

LIBRERÍAS USADAS:

La librería principal con la que está creado el juego es la librería turtle como ya he tratado antes. Aunque también son necesarias las librerías time, con la que se da un delay al movimiento de las piezas, este puede variar según el número que nosotros decidamos, en este caso es de 0’1. Por otro lado,m es necesaria la librería random para que la forma de las piezas al igual que su color salga de forma aleatoria elegida por el programa, es decir, gracias a esta cada vez sale una pieza diferente con un color diferentes sin seguir un patrón exacto. Por último, utilicé la librería requests, la cual sirve para poner sonido al programa, aunque este no funciona.

Además, como ya he comentado, trate de usar la librería pygame de la que tomé algo de información.

7 of 17

PROBLEMAS:

A pesar de que el programa esté completo podemos ver algunos problemas cuando iniciamos el programa. Podemos ver que si pulsamos muy seguido y rápido una de las teclas con las que el juego se mueve a la izquierda o la derecha se termina bloqueando. Además si seguimos presionando alguna de estas teclas cuando la pieza llega abajo, donde ya tendría que pararse en ocasiones estas desaparecen y comienza a caer una nueva pieza. Otras veces las piezas al caer encima de otras ya colocadas abajo, hacen desaparecer alguna de las partes de estas piezas ya colocadas y se coloca esta nueva por completo.

En definitiva el juego muestra varios fallos a la hora de probarlo, aunque si se juega despacio y pulsando las teclas con calma se puede jugar bien.

Por otra parte aparece el problema del sonido, el cual ya he nombrado anteriormente, y aunque en el programa no aparece ningún problema este no se escucha.

Estos son los problemas que se encuentran en el proyecto final, pero podemos ver en los programas intentados con pygame que esta librería no habría la ventana de juego y en mi primer intento de programar tetris con turtle tuve un problema en la definición de los movimientos de las piezas.

8 of 17

EXPLICACIÓN POR PARTES:

Creación de la ventana de juego usando la librería turtle y delay con la librería tiempo.

La ventana esta definida con el nombre Tetris y creada de color negro con unas dimensiones de 600*800.

El delay es de 0.1.

Ventana:

9 of 17

Lista de piezas:

Defino las piezas que van a aparecer en el juego. Estas aparecerán coloreadas en las posiciones de los 1 y aparecerán huecos en las posiciones de los 0. Todas estas piezas se añaden a una lista a partir de la cual irán apareciendo de forma aleatoria.

10 of 17

Movimientos de piezas:

Se definen los movimientos que podrán realizar las piezas nombradas anteriormente en la lista. Estas se pueden mover hacia la derecha y la izquierda presionando las teclas de las flechas del teclado, además rotan sobre sí mismas para cambiar la posición presionando la tecla espacio.

11 of 17

Grid:

Se define una cuadrícula la cual es llamada grid, a través de está se desplazarán las piezas, toda esta está creada con el número 0, por ello cuando va bajando la pieza definida con el número 1 aparece en la pantalla.

12 of 17

Fondo de juego:

Se crea el rectángulo blanco en el cual se va a realizar el juego, en el cual van a parecer las piezas. A continuación se indican las coordenadas en las que va a parecer.

13 of 17

Lista de colores y elección aleatoria:

Se crea una lista de colores, el primero de ellos corresponde al color del rectángulo de forno y el resto a los colores de las piezas. Seguido se crea la elección aleatoria de la pieza y del color de la misma durante todo el juego.

14 of 17

Destrucción de filas y puntos:

Se define la destrucción de las filas una vez estas estén completadas por bloques, cada vez que una de estas filas se elimina se añaden 10 puntos a las puntuación.

15 of 17

Texto de puntuación y movimientos en la ventana:

Se define el texto donde aparece la puntuación, al igual que su color y tipo de letra, así como la posición en la que va a aparecer a través de coordenadas.

Por otro lado se definen los movimientos en la ventana del juego.

16 of 17

Aparición de las piezas:

Se indica que en aquellas posiciones del grid donde haya un uno debe aparecer la figura de forma opaca. Esto ya lo he explicado anteriormente pero se define en esta parte.

17 of 17

Música:

Por último se define la música, esta ha sido descargada y añadida anteriormente y así utilizada en el código del programa.