En una ocasión os mencioné coursera, y coursera consigue que haga este código muy básico de python. ¿Conocéis el juego de The Big Bang Theory? Os dejo un video muy ilustrativo:
Una imagen para tener delante las relaciones del juego, y aquí el código acorde a la última versión de python ^^
juego.py: Pulsa para ver/ocultar el código
# Rock-paper-scissors-lizard-Spock template
# The key idea of this program is to equate the strings
# "rock", "paper", "scissors", "lizard", "Spock" to numbers
# as follows:
#
# 0 - rock
# 1 - Spock
# 2 - paper
# 3 - lizard
# 4 - scissors
#import the library for random numbers
import random
# Convert the number to the correspond number
def number_to_name(number):
#mod five to avoid wrong numbers
number=number%5
if number==0 :
result="rock"
elif number==1:
result="Spock"
elif number==2:
result="paper"
elif number==3:
result="lizard"
else:
result="scissors"
return result;
#convert the name to number
def name_to_number(name):
result=None
if name=="rock":
result=0
elif name=="Spock":
result=1
elif name=="paper":
result=2
elif name=="lizard":
result=3
elif name=="scissors":
result=4
else:
print("Wrong name!! The options are: ")
print("rock,Spock,paper,lizard,scissors")
print("")
result=-1 # return a negative number for error
return result;
#game
def rpsls(name):
# convert name to player_number using name_to_number
player_number=name_to_number(name)
#check first if I have no errors
if player_number >=0 :
# compute random
computer_number=random.randrange(0,5)
# compute difference of player_number and comp_number modulo five
result_game=(player_number-computer_number)%5
# use if/elif/else to determine winner
if result_game==0:
who_wins="Player and computer tie!"
elif result_game > 2:
who_wins ="Computer wins!"
else :
who_wins="Player wins!"
# convert comp_number to name using number_to_name
name_computer=number_to_name(computer_number)
# print results
print("Player chooses " + name)
print("Computer chooses "+name_computer)
print (who_wins)
print
# test your code
rpsls("rock")
rpsls("Spock")
rpsls("paper")
rpsls("lizard")
rpsls("scissors")
#test any error
rpsls("wrong name")

