import random ######################################################### # Juego del amigo secreto con personajes # # por @hpsaturn 2015 v0.1 # ######################################################### jugadores=['Santiago','Silvia','Adriana','Edna','Dani','Felipe','Ana Maria','Consuelo','Marta','Arturo','Jorge'] personajes=['gato','perro','caballo','pajaro','sapo','pescado','burro','raton','camello','elefante','gorila'] amigos=list(jugadores) # listado de amigos secretos por escoger totalJugadores=len(jugadores) # total de jugadores q debe ser igual al de personajes random.seed() # inicio generador de aleatorios con semilla aleatoria ############################## ####### Funciones ############ def traerJugador(): jugador=jugadores[numeroAleatorio()] # seleccion jugador aleatorio jugadores.remove(jugador) # y lo borro. return jugador def traerPersonaje(): personaje=personajes[numeroAleatorio()] # selecciono personaje aleatorio personajes.remove(personaje) # y lo borro return personaje def traerAmigo(jugador): if jugador in amigos: # Si jugador en curso no ha sido amigo secreto, amigos.remove(jugador) # entonces lo excluyo amigo=amigos[amigoAleatorio(amigos)] # y escojo un amigo secreto restante aleatoriamente. amigos.append(jugador) # retorno jugador en curso a q sea posible amigo secreto. amigos.remove(amigo) # quito amigo secreto escogido de las posibilidades. else: # Si, si ha sido amigo secreto (no esta en amigos), amigo=amigos[amigoAleatorio(amigos)] # entonces escojo libremente uno de los restantes amigos.remove(amigo) # y quito amigo secreto escogido. return amigo def numeroAleatorio(): # numero aleatorio del total de jugadores restantes totalActuales=len(jugadores) return random.randint(0,totalActuales-1) def amigoAleatorio(a): # numero aleatorio del total de amigos secretos restantes totalAmigos=len(a) return random.randint(0,totalAmigos-1) def enviarSMS(jugador,personaje,amigo): print(jugador+" eres un "+personaje+" y tú amigo secreto es "+amigo) ############################################ ############## MAIN ################## for j in range(0,totalJugadores-1): # itero entre todos los jugadores jugador=traerJugador() personaje=traerPersonaje() amigo=traerAmigo(jugador) enviarSMS(jugador,personaje,amigo) # envio mensaje SMS (imprimo) enviarSMS(jugadores[0],personajes[0],traerAmigo(jugadores[0])) # envio a los ultimos restantes
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question