Programar Juegos Arcade
con Python y Pygame

Lab 4: Camello

4.1 Descripción del Juego del Camello

fig.camel

La idea original del Camello proviene del Heath Users Group y fue publicada en el More BASIC Computer Games en 1979.

La idea es cabalgar con tu camello por el desierto mientras eres perseguido. Tienes que gestionar tu sed, el cansancio del camello y cuán alejado estás de los nativos que te persiguen.

Éste es uno de los primeros juegos que programé sobre un Apple //e. El juego es flexible. He tenido estudiantes que crearon una versión Star Wars del juego donde tenía que cabalgar un wampa a través de Hoth. Es fácil añadir tormentas de arena y otros eventos aleatorios para hacer más entretenido el juego. Aunque es un juego basado en texto, me he encontrado con algunos alumnos muy enganchados a él. Una vez vino un profesor a quejarse de que mis alumnos hacían mucho ruido jugando este juego en la “gran pantalla.”

4.2 Ejemplo del Camello

Ésta es un ejemplo del juego:

Bienvenido al Camello!
Has robado un camello para atravesar el gran desierto del Mobi.
Los nativos quieren que les devuelvas su camello y salen en persecución tuya! Tendrás que 
sobrevivir al desierto y correr más que los nativos.

A. Beber de la cantimplora.
B. Velocidad moderada hacia adelante.
C. A toda velocidad hacia adelante.
D. Para y descansa.
E. Comprueba tu estado.
Q. Salir.
¿Qué eliges? C
Has recorrido 12 millas.

A. Beber de la cantimplora.
B. Velocidad moderada hacia adelante.
C. A toda velocidad hacia adelante.
D. Para y descansa.
E. Comprueba tu estado.
Q. Salir.
¿Qué eliges? C

Has recorrido 17 millas.

A. Beber de la cantimplora.
B. Velocidad moderada hacia adelante.
C. A toda velocidad hacia adelante.
D. Para y descansa.
E. Comprueba tu estado.
Q. Salir.
¿Qué eliges? e

Millas recorridas:  29
Veces que has bebido de la cantimplora:  3
Los nativos están a 31 millas detrás de ti.

A. Beber de la cantimplora.
B. Velocidad moderada hacia adelante.
C. A toda velocidad hacia adelante.
D. Para y descansa.
E. Comprueba tu estado.
Q. Salir.
¿Qué eliges? b

Has recorrido 6 millas.

...y así hasta que...

A. Beber de la cantimplora.
B. Velocidad moderada hacia adelante.
C. A toda velocidad hacia adelante.
D. Para y descansa.
E. Comprueba tu estado.
Q. Salir.
¿Qué eliges? C

Has recorrido 12 millas.
Los nativos se están acercando!

A. Beber de la cantimplora.
B. Velocidad moderada hacia adelante.
C. A toda velocidad hacia adelante.
D. Para y descansa.
E. Comprueba tu estado.
Q. Salir.
¿Qué eliges? C

Has recorrido 11 millas.
Los nativos se están acercando!
Has conseguido atravesar el desierto! Has ganado!

4.3 Guía de Programación

Estos son los pasos para completar este taller. Tienes total libertad de modificar y ampliar el taller. Intenta jugarlo con tus amigos y familia.

  1. Crea un programa nuevo e imprime la instrucciones sobre la pantalla. Haz esto con múltiples declaraciones print. No vayas a usar una sola declaración print y múltiples caracteres \n para separar cada cosa en una línea.
    Bienvenido al Camello!
    Has robado un camello para atravesar el gran desierto del Mobi.
    Los nativos quieren que les devuelvas su camello y salen en persecución tuya! Tendrás que 
    sobrevivir al desierto y correr más que los nativos.
    
  2. Crea una variable booleana llamada hecho y establécela a False.
  3. Crea un bucle while que iterará mientras hecho sea False.
  4. Imprime lo siguiente dentro del bucle:
    A. Beber de la cantimplora.
    B. Velocidad moderada hacia adelante.
    C. A toda velocidad hacia adelante.
    D. Para y descansa.
    E. Comprueba tu estado.
    Q. Salir.
    
  5. Pregúntale al jugador por la opción que elige. Asegúrate de poner un espacio antes de las comillas, de forma que lo que escriba el jugador no se mezcle con tu texto.
  6. Si el jugador elige Q, entonces estableces hecho como True. Usando algo como usuario_elige.upper(), en lugar de solo usuario_elige en tu declaración if, puedes hacer que no hayan problemas con las minúsculas/mayúsculas.
  7. Pruébalo y asegúrate de que puedes salir del juego.
  8. Antes del bucle principal del programa, créate variables para millas recorridas, sed, cansancio del camello. Inicialízalas con cero.
  9. Crea una variable para la distancia recorrida por los nativos y establécela a -20 (Veinte millas por detrás.)
  10. Crea y establece un número inicial de sorbos en la cantimplora.
  11. Añade un elif en el bucle principal de tu programa que mire si el usuario está preguntado por su estado. Si es así, imprime algo como:
    Millas recorridas:  0
    Veces que has bebido de la cantimplora:  3
    Los nativos están a 10 millas detrás de ti.
    
  12. >Añade un elif en el bucle principal de tu programa que gestione si el jugador quiere detenerse por la noche. Si es así, reinicia el cansancio del camello a 0. Imprime que el camello se congratula de ello, y desplaza a los nativos en una cantidad aleatoria de entre 7 y 14 millas más o menos.
  13. Añade un elif en el bucle principal de tu programa que gestione si el jugador quiere avanzar a toda velocidad. Si es así, avanza una cantidad aleatoria entre 10 y 20 incluidos. Imprime cuántas millas ha recorrido. Suma 1 a sed. Suma un número aleatorio entre 1 y 3 al cansancio del camello. Desplaza a los nativos una cantidad entre 7 y 14 millas.
  14. Añade un elif en el bucle principal de tu programa que gestione si el jugador quiere avanzar a velocidad moderada. Si es así, avanza una cantidad aleatoria entre 5 y 12, ambos incluidos. Imprime cuántas millas ha recorrido. Suma 1 a sed. Suma 1 al cansancio del camello. Desplaza los nativos una cantidad entre 7 y 14 millas.
  15. Añade un elif en el bucle principal de tu programa que gestione si el jugador quiere beber de la cantimplora. Si es así, asegúrate que queden tragos en la cantimplora. Si los hay, réstale 1 y devuelve la sed del jugador a cero. En caso contrario, que imprima error.
  16. En el bucle, que imprima “Estás sediento” si la sed del jugador está por encima de 4.
  17. Que imprima “Has muerto de sed” si la sed del jugador está por encima de 6. Establece hecho como true. Asegúrate de que tu código no imprima, a la vez, “Estás sediento” y “Haz muerto de sed!” Utiliza elif cuando sea pertinente.
  18. Que imprima “Tu camello se está cansando.” si el cansancio del camello está por encima de 5.
  19. Imprime “Tu camello ha muerto.” si el cansancio del camello está por encima de 8. Al igual que con los anteriores pasos, imprime uno o el otro. Sería una buena idea incluir una comprobación en la variable hecho de forma que no fueras a imprimir que tu camello se está cansando, después de que ya hubiera muerto de sed.
  20. Si los nativos te han capturado, imprime que han capturado al jugador y finaliza el juego.
  21. Si los nativos están a menos de 15 millas del jugador, que imprima “Los nativos se están acercando!”
  22. Si el jugador ha recorrido 200 millas por el desierto, que imprima que ha ganado y finaliza el juego. Asegúrate, eso sí, de que no hayan muerto antes de declararlos ganadores.
  23. Añade una oportunidad entre 20, de encontrar un oasis. Imprime que el jugador lo encouentra, que rellena la cantimplora, reinicia la sed del jugador y que el camello descanse.
  24. Prueba el juego, y afina los números para que se convierta en un reto y no en algo imposible. Arregla cualquier fallo que encuentres.

4.4 Pistas


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