Juego de piedra papel tijera lagarto y spock python

Hola en este ejemplo de python mostrare un gran juego clasico
actualizado el cual es piedra papel o tijera gran clásico
verdad, quien no lo jugo xd si te preguntas en que modo se actualiza
ahora ya no solo son las opciones clasicas de piedra papel o tijera
si no que ahora son piedra papel tijera lagarto o spock después de
ser tres opciones que tenian ventaja desventaja y empate
ahora son 5 que tambien las tienen, quieres saber ¿como?

En esta imagen se muestra como se juega




Basándonos en la imagen podriamos crear el juego
aqui el codigo:



import random
 
# Tipo enumerado de los posibles valores asociados a un código
(PIEDRA, PAPEL, TIJERA, LAGARTO, SPOCK) = range(5)
 
# Valores ordenados por posición
valores = ["PIEDRA", "PAPEL", "TIJERA", "LAGARTO", "SPOCK"]
 
# Reglas del juego. La clave representa la posición en el vector de valores. El valor de cada clave es la manera en que un elemento vence a otro y los elentos a los que puede vencer.
# Por ejemplo, la posición 0 representa PIEDRA. PIEDRA aplasta a LAGARTO y PIEDRA aplasta a TIJERA
reglas = {0: [["aplasta", "aplasta"],[LAGARTO, TIJERA]], 1: [["tapa", "desautoriza"],[PIEDRA, SPOCK]], 2: [["corta", "decapita"],[PAPEL, LAGARTO]], 3: [["envenena", "come"],[SPOCK, PAPEL]], 4: [["rompe", "vaporiza"],[TIJERA, PIEDRA]]}
(GANAUSUARIO, GANAMAQUINA, EMPATE) = range(3)
 
# Obtiene una cadena de texto a partir del código de la tirada
# Ej: valorTexto(0) = PIEDRA
def valorTexto(codigo):
        return valores[codigo]
 
# Devuelve el código de la tirada a partir de la cadena de texto de la tirada
# Ej: textoValor("PIEDRA") = 0
def textoValor(texto):
        for i, valor in enumerate(valores):
                if (texto == valor):
                        return i
 
# Tirada de la máquina
def sacaMaquina():
        tirada = random.randint(0,5)
        return tirada;
 
# Tirada del usuario
def sacaUsuario():
        tirada = ""
        while not tirada in valores:
tirada = raw_input("Introduce una jugada válida (PIEDRA, PAPEL, TIJERA, LAGARTO, SPOCK): ")
        return textoValor(tirada);
 
# Valida la jugada
def juego(usuario, maquina):
        if maquina in reglas[usuario][1]:
                return GANAUSUARIO
        elif usuario in reglas[maquina][1]:
                return GANAMAQUINA
        else:
                return EMPATE
 
# Explica la jugada
# Ej: explica(TIJERA, PAPEL) =
def explica(ganador, perdedor):
        for i, valor in enumerate(reglas[ganador][1]):
                if (perdedor == valor):
  print valorTexto(ganador), reglas[ganador][0][i], valorTexto(perdedor)
 
########################
### CUERPO PRINCIPAL ###
########################
 
# Tiradas de los usuarios
usuario = sacaUsuario()
maquina = sacaMaquina()
print valorTexto(usuario), "VS", valorTexto(maquina)
 
# Comprueba la jugada y muestra el resultado
resultado = juego(usuario, maquina)
if resultado == GANAUSUARIO:
        explica(usuario, maquina)
        print "¡Has ganado!"
elif resultado == GANAMAQUINA:
        explica(maquina, usuario)
        print "¡Has perdido!"
else:
        print "¡Empate!"


quieres aprender mas a fondo como se edito este juego en python
aconsejo este curso: Introduccion a la programacion python

Aprendes bien en el curso, esta apenas y fue la tercer tarea.




Descargar codigo:


Comentarios

Entradas más populares de este blog

Solucion al error collation desconocida: 'utf8mb4_0900_ai_ci'

Ejemplo de suma Pascal