0% encontró este documento útil (0 votos)
107 vistas11 páginas

Proyecto de Laboratorio

1. El documento describe un juego en Python donde el jugador derriba alienígenas de diferentes colores para ganar puntos. 2. Dependiendo del color, cada alienígena derribado otorga una cantidad de puntos: rojo = 10 puntos, verde = 5 puntos, azul = 2 puntos. 3. El programa solicita al usuario la cantidad de cada color derribado y calcula el puntaje total basado en la cantidad y tipo de enemigos derribados.

Cargado por

Renzo Santander
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
107 vistas11 páginas

Proyecto de Laboratorio

1. El documento describe un juego en Python donde el jugador derriba alienígenas de diferentes colores para ganar puntos. 2. Dependiendo del color, cada alienígena derribado otorga una cantidad de puntos: rojo = 10 puntos, verde = 5 puntos, azul = 2 puntos. 3. El programa solicita al usuario la cantidad de cada color derribado y calcula el puntaje total basado en la cantidad y tipo de enemigos derribados.

Cargado por

Renzo Santander
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Juego de Extraterrestres - Python

Imagina que te encuentras en un salón de videojuegos, que necesita un desarrollador. El grupo


de trabajo ha decidido contratarte para que mejores su juego de alienigenas en el espacio.
Necesitan saber cuántos puntos deberá ganar el jugador dependiendo del color del alienígena
que derribe incluyendo la cantidad, en caso de que sea rojo, el jugador obtendrá 10 puntos, en
caso de que sea verde obtendrá 5 puntos y en el caso de que sea azul obtendrá solamente 2
puntos. El puntaje final se definirá por la cantidad de alienígenas dependiendo del color y su
puntaje respectivo, todo esto sumando. Si el jugador derriba más de 10 rojos se le dará un bonus
del 10% sobre el puntaje final, si derriba más de 5 verdes se le da un bonus del 5%, y para los
azules si derribó más de 2 uno del 2%, tenga en cuenta que el valor del puntaje final debe
mostrarse de tipo entero, es decir si el resultado 32.78 debe mostrarse 32. Diseñe un programa
que le permita al usuario saber cuántos puntos en total ganó luego de una partida dependiendo
del color de los alienígenas que haya derribado, y la cantidad.

Nota: Ten en cuenta que es un solo intento, el programa deberá (a través de consola) obtener el
color y el número de naves que derribo.

Por ejemplo
Ingrese la cantidad de rojos derribajos 2
Ingrese la cantidad de verdes derribados 5
Ingrese la cantidad de azules derribados 12
Puntaje total 70

Apunte:
2 Rojo = 10 puntos --> 10% por matar a más de 10 rojos
5 verde = 5 puntos --> 5% por matar a más de 5 verdes
12 azul = 2 puntos --> 2% por matar a más de 2 azul
Rojo = 20
Verde = 25
Azul = 24 + 1,38
Puntaje total = 69 --> 69 + 1,38 = 70

JUEGO EN PYTHON

1: Construir la ventana del juego

En esta primera sesión, vamos a crear y configurar la ventana que vamos a usar
posteriormente para dibujar los elementos de nuestro juego.
Lo primero que tenemos que entender es la estructura que va a tener los juegos que
desarrollemos con pyGame:

1. Se crea y configura la ventana del juego, con los elementos que va a tener nuestro
juego.
2. Se comprueban los eventos: Dentro de un bucle, comprobamos los posibles eventos
que se han producido, por ejemplo, hemos pulsado el botón de cierre de la ventana y el
juego concluye, o hemos pulsado una determinada tecla,…
3. Se actualiza la pantalla: Según la lógica del juego o de algún evento que haya
sucedido, se modifican los elementos (se mueve la pelota, se mueve la plataforma,…)
y se vuelve a dibujar en la pantalla.
En esta primera sesión vamos a crear un programa, que nos muestra una ventana sin ningún
elemento. Este programa puede servir a los alumnos como plantilla para que desarrollen sus
propios juegos. El primer ejemplo lo tenemos en el fichero y sería el siguiente:

1. Es necesario importar el módulo pygame (import pygame) y a continuación se


inicializaría el módulo (pygame.init()).
2. Creamos y configuramos la ventana del juego:

• Con pygame.display.set_mode se crea una ventana con el tamaño señalado.


Se genera un objeto ventana que representa nuestra ventana de juego.
• Con pygame.display.set_caption se configura el título de la ventana.
3. La parte central del programa es un bucle que repite las siguientes instrucciones:

• El método pygame.event.get() nos devuelve una lista con los posibles eventos
que han sucedido en el juego. Usamos una instrucción for para comprobar
esta lista de eventos.
• En este ejemplo, comprobamos el evento de pulsar el botón de cierre de la
ventana. Esto ocurre cuando el tipo de evento (event.type) es igual al
valor pygame.QUIT. Si esta condición ocurre se modificará la
variable jugando que hará que el bucle principal del juego termine.
• En el bucle principal se actúa sobre los elementos de la ventana. En nuestro
caso no tenemos ninguno.

• Se borran los posibles elementos que tengamos, pintando la pantalla de un


color: ventana.fill((252, 243, 207)). en este caso usando la notación RGB lo
pintamos de amarillo claro.
• Volvemos a pintar los elementos en su nueva posición: pygame.display.flip(),
controlando en todo momento que la frecuencia de refresco de la imagen sea
de 60 fps.
4. Si salimos del bucle principal se ha terminado el programa: pygame.quit().

Si ejecutamos el programa: python3 ejemplo1.py, nos debe aparecer una ventana como esta:

En esta sesión vamos a modificar el ejemplo anterior, para incluir el primer objeto a nuestro
juego: una pelota que se moverá e irá rebotando por los bordes de la ventana.
La pelota va a ser una imagen que tenemos en nuestro directorio: ball.png.
El ejercicio2.py quedaría de la siguiente forma:
Antes de explicar las nuevas instrucciones que hemos introducido en este ejemplo, tenemos
que aprender como posicionamos y movemos los objetos dentro de la ventana. Cada objeto se
representa por el rectángulo que ocupa, y se posiciona en la ventana indicando la ordenada X
(posición horizontal) y la ordenada Y (posición vertical). Tenemos que saber que el origen de
coordenadas (0,0) se encuentra en la esquina superior izquierda.

Para mover un objeto necesitaremos dos valores: uno para indicar el desplazamiento lateral
(ordenada X), si es positivo desplazaremos el objeto a la derecha, si es negativo a la izquierda;
y otro para indicar el desplazamiento vertical (ordenada Y), si es positivo se moverá hacia
abajo, si es negativo hacía arriaba.
Ya podemos explicar las nuevas instrucciones que hemos incluido para mover la pelota:

1. A partir de una imagen png, creamos un objeto imagen (ball =


pygame.image.load("ball.png")), pero como hemos comentado vamos a posicionar el
rectángulo que ocupa la imagen. Para obtener dicho rectángulo hemos
ejecutado ballrect = ball.get_rect().
2. Inicializamos una lista con dos valores, que llamamos speed. El primer valor representa
el desplazamiento horizontal, y el segundo el desplazamiento vertical. Lo utilizaremos
para mover la pelota.
3. Posicionamos la pelota en el origen de coordenadas: ballrect.move_ip(0,0).
4. Dentro del bucle del juego: movemos la pelota con los datos guardados en la
lista speed: ballrect = ballrect.move(speed).
5. Y comprobamos si ha llegado a algún borde:

• Podemos obtener la posición del rectángulo que representa la pelota


con ballrect.left (posición izquierda), ballrect.rigth (posición
derecha), ballrect.top (posición superior) y ballrect.bottom (posición inferior).
• Si la posición izquierda es menor que 0 o la posición derecha es mayor que la
anchura de la ventana (ventana.get_width()) habremos tocado los bordes
laterales. En esta situación cambiamos el signo del primer dato guardado
en speed, es decir, si se movía a la derecha ahora se moverá a la izquierda, y
al contrario.
• Si la posición superior es menor que 0 o la posición inferior es mayor que la
altura de la ventana (ventana.get_height()) habremos tocado los bordes
superior o inferior. En esta situación cambiamos el signo del segundo dato
guardado en speed, es decir, si se movía hacía abajo ahora se moverá hacía
arriba, y al contrario.
6. Finalmente volvemos a pintar la pelota en la ventana (ventana.blit(ball, ballrect)).
Y ya podemos ejecutar el programa (python3 ejercicio2.py):
Sesión 3: Añadimos el bate a nuestro juego
En esta sesión, partiendo de lo que habíamos realizado en la anterior, vamos a añadir otro
objeto a nuestro juego: un bate, que controlaremos con el cursor derecho e izquierdo. La pelota
al tocar el bate rebotará. El fichero ejercicio3.py quedaría de la siguiente manera:
Veamos las nuevas instrucciones que hemos añadido:

1. Ahora el objeto bate se crea a partir de otra imagen (bate =


pygame.image.load("bate.png")), obtenemos el rectángulo que ocupa (baterect =
bate.get_rect()) y lo colocamos en su posición inicial (baterect.move_ip(240,450)).
2. Dentro del bucle, comprobamos si hemos pulsado alguna tecla. Con keys =
pygame.key.get_pressed() obtenemos una lista con las teclas que se han pulsado.
3. Si hemos pulsado el cursor izquierdo (if keys[pygame.K_LEFT]:) movemos el bate tres
posiciones a la izquierda (baterect = baterect.move(-3,0)).
4. Si hemos pulsado el cursor derecho (if keys[pygame.K_RIGHT]:) movemos el bate tres
posiciones a la derecha (baterect = baterect.move(3,0)).
5. Finalmente, volvemos a pintar el bate en la ventana (ventana.blit(bate, baterect)).
Y ya podemos ejecutar el programa (python3 ejercicio2.py):
Sesión 4: Terminamos nuestro juego
En esta sesión no vamos a explicar el código del último ejemplo. El alumno, estudiando el
código del programa ejercicio4.py tendrá que buscar las instrucciones que hemos añadido y
que nos permiten realizar las siguientes mejoras:
1. En cada ejecución la pelota tiene una velocidad distinta.

2. Ahora la pelota al rebotar, puede cambiar el angulo de rebote.

3. Al tocar el borde inferior has perdido el juego.

4. Al perder el juego se pone el texto “Game Over”.

A continuación le podemos proponer al alumno otras mejoras en el juego.

1. Aceleración del movimiento del bate al dejar pulsado los cursores.

2. En cada rebote, cambio del ángulo del cambio de la trayectoria.

3. Aceleración de la pelota cada cierto tiempo.

4. Podríamos incluir algunos objetos “ladrillos” y crear un juego parecido al “Arkanoid”.

5. O introducir otro bate, que se controle con otras dos teclas y hacer un juego parecido al
“Pong”.
DESARROLLO GRUPAÑ:

El reto es desarrollar en Python el juego del gusanito.

También podría gustarte