Laboratorio 2: "Rock, paper, scissors, lizard, Spock"

posted Jan 24, 2013, 3:22 AM by Camilo Rocha   [ updated Jan 24, 2013, 3:45 AM ]
El juego "rock, paper, scissors, lizard, Spock" (rpsls) es una extensión del popular juego Piedra, Papel y Tijeras (en inglés "rock, paper, scissors"). Fue inventado por Sam Kass y Karen Bryla para reducir los posibles empates en el juego original (Wikipedia). El objetivo de este laboratorio es practicar el uso de comandos condicionales en Python. Esto se conseguirá al implementar una versión del juego en la que un usuario llamado "Player" escoge uno de los cinco posibles valores, otro usuario llamado "Computer" escoge aleatóreamente uno de los cinco posibles valores y posteriormente se determina quién gana o si hay empate.

Las reglas de juego se encuentran en el vínculo a Wikipedia. Adicionalmente, puede seguir las instrucciones de "Sheldon" acá y aprender a hacer las figuras con las manos acá.

El taller se desarrollará en CodeSkulptor utilizando esta plantilla. Es importante que siga las convenciones e instrucciones allí expuestas. Siguiendo la plantilla, haga lo siguiente:

  1. Implemente el contenido de la función number_to_name que dado un número entre 0 y 4 (inclusive) devuelve la cadena que representa el nombre correspondiente. Siga la convención de la plantilla.
  2. Implemente el contenido de la función name_to_number que dado una cadena que representa un nombre en el juego devuelve el número correspondiente. Siga la convención de la plantilla. Note que las funciones number_to_name y name_to_number son inversas mútuamente.
  3. Siga las instrucciones en la función rpsls para implementar esta función y así completar el laboratorio. Para la generación de números aleatorios consulte la documentación de CodeSkulptor, específicamente la documentación de "Random Module" y su método random.randint(start, stop).
Al final de la plantilla encuentra cinco llamados a la función rpsls que le permitirán probar su implementación. Para el formato de salida, considere el siguiente ejemplo en donde se muestra el resultado de cinco partidas del juego:
Player chooses rock Computer chooses Spock Computer wins! Player chooses Spock Computer chooses Spock Player and Computer tie! Player chooses paper Computer chooses rock Player wins! Player chooses lizard Computer chooses scissors Computer wins! Player chooses scissors Computer chooses Spock Computer wins!
Recuerde que a diferencia del laboratorio anterior en donde se programó en Python 3, CodeSkulptor usa Python2 como lenguaje de programación. Es decir, para efectos prácticos, la instrucción "print" tiene sintaxis diferente.

El laboratorio es individual y cada estudiante debe entregar:
  • El código impreso del laboratorio en un archivo llamado 'rpsls.py'
    • El encabezado del archivo debe indicar, usando comentarios de Python,
      • Su nombre en la primera línea
      • Su código de estudiante en la segunda línea
  • Suministrar, junto con el código impreso, un vínculo a CodeSkulptor para que el código pueda ser consultado y ejecutado