Laboratorio 2: "Rock, paper, scissors, lizard, Spock"
Post date: Jan 24, 2013 11:22:07 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:
- 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. - 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 funcionesnumber_to_name
yname_to_number
son inversas mútuamente. - 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étodorandom.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
- El encabezado del archivo debe indicar, usando comentarios de Python,
- Suministrar, junto con el código impreso, un vínculo a CodeSkulptor para que el código pueda ser consultado y ejecutado