Programar Juegos Arcade
con Python y Pygame

Lab 16: Taller Final

Tienes dos opciones para el taller final. Un “videojuego” o una “aventura textual.”

16.1 Opción Videojuego

¡Llegó el momento! Esta es tu oportunidad para usar tu creatividad y mostrar realmente que puedes desarrollar tu propio videojuego. Se trata de algo más que de pasar un examen, ahora puedes realmente crear algo real.

Vídeo: Otoño 2013 Game Projects
Vídeo: Otoño 2012 Game Projects
Vídeo: Primavera 2012 Game Projects

El taller final se divide en tres partes. Cada parte establece qué debe ser capaz de hacer tu juego.

37.1.1 Requisitos para la 1ª Parte:

Pistas:

37.1.2 Requisitos para la 2ª Parte:

Para esta parte del taller final, tu juego debería ser ya bastante funcional. Cualquier persona debería ser capaz de sentarse delante de él y jugar unos cuantos minutos y sentir que está delante de un juego real. Aquí tienes algunas cosas que muy probablemente quieras añadir:

37.1.3 Requisitos para la 3ª Parte:

Para la parte final, vamos a pulir tu juego. Aquí tienes algunas cosas que muy probablemente quieras añadir:

16.2 Opción Aventura Textual

¿No estás interesado en un videojuego? Continúa con el trabajo del juego “¡Aventura!”.

37.2.1 Requisitos para la 1ª Parte:

  1. En lugar de que cada habitación sea una lista de [descripción, norte, este, sur, oeste], crea una clase Habitacion. La clase debería tener un constructor que tomara la (descripción, norte, este, sur y oeste), y estableciera los campos para la descripción y para todas las direcciones. Haz que el programa trabaje con esta nueva clase. El programa debería ser capaz de añadir habitaciones de esta forma:
    habitacion = Habitacion("Estás en la cocina. Hay una puerta hacia el Este.", None, 1, None, None)
    lista_habitaciones.append(habitacion)
    
    habitacion = Habitacion("Estás en el salón. Hay una puerta hacia el Oeste.", None, None, 0, None)
    lista_habitaciones.append(habitacion)
    
    Luego, el programa debería ser capaz de referirse a los campos de la habitación de esta manera:
    habitacion_actual = lista_habitaciones[habitacion_actual].norte
    
  2. Expande el juego de manera que una persona pueda viajar hacia arriba y hacia abajo, y también, hacia el noroeste, suroeste, noreste y sureste.
  3. Añade una lista de items a tu juego.
    1. Crea una clase llamada Item.
    2. Añádele campos para el número de habitación del item, una descripción extensa, y un nombre corto. El nombre corto debería constar de una sola palabra larga. De esta forma, el usuario puede escribir obtener llave y el ordenador sabrá a qué objeto se está refiriendo. La descripción será lo que se imprimirá por pantalla. Algo así como Tienes allí una llave oxidada.
    3. Crea una lista de items, de la misma forma que creaste la lista de habitaciones.
    4. Si el item se encuentra en la habitación del usuario, imprime su descripción.
    5. Pruébalo y asegúrate de que funciona.

37.2.2 Requisitos para la 2ª Parte:

  1. Cambiemos las opciones de procesamiento, en lugar de que el jugador solo escriba rumbos, vamos a permitirle ahora que tenga otras opciones. Por ejemplo, añadimos la habilidad escribir coger llave, inventario o varita.
    1. Para conseguir esto, no le preguntes al jugador ¿Hacia dónde quieres ir? En su lugar, pregúntale algo como ¿Cuál es tu comando?
    2. Divide la entrada introducida por el usario. Necesitamos una variable que sea igual a la primera palabra introducida, tal como coger y otra variable igual a la segunda palabra, tal como llave.
      1. Utiliza el método split perteneciente a las cadenas de texto (strings) de Python. Por ejemplo:
        palabras_comando = comando_usuario.split(" ")
        Esto dividirá lo que introduzca el usuario dentro de una lista. Cada item separado por espacios.
      2. En lugar de lo que tenías antes, actualiza el código que procesa los rumbos escritos por el jugador para comprobar palabras_comando[0]
  2. Añade un comando coger.
    1. Añade una comprobación a tu comando coger en tu cadena if/elif que ahora procesa rumbos.
    2. Busca en la lista de items hasta que encuentres el objeto que coincide con lo que el jugador trata de recoger.
    3. Si el objeto no se encuentra o si no está en la habitación actual, imprime error.
    4. Si el objeto es encontrado y está en la habitación actual, establece el número de habitación del objeto en -1.
  3. Añade un comando para “inventario” que imprima cada objeto cuyo número de habitación sea igual a -1.
  4. Añade la capacidad de soltar un objeto.
  5. Añade la capacidad de usar objetos. Por ejemplo “utilizar llave” o “empuñar espada” o “alimentar oso.”

37.2.3 Requisitos para la 3ª Parte:

Expande el juego para que haga más cosas. Por ejemplo:

  1. Crear un archivo con formatos que te permita cargar las habitaciones y los objetos desde un archivo en lugar de tener que escribir el código para ellos.
  2. Que tenga monstruos con puntos por golpes.
  3. Divide el código en múltiples archivos para una mejor organización.
  4. Quita las variables globales usando una función main, tal como se muestra al final del capítulo sobre funciones.
  5. Que los objetos tengan un uso limitado. Como que un arco tenga un determinado número de flechas.
  6. Que las criaturas tengan una fortaleza limitada y que las armas creen lesiones aleatorias. Que la oportunidad de provocar daño sea también aleatoria.

You are not logged in. Log in here and track your progress.