Clase Numero 21 – Piedra Papel o Tijera

Ejercicio Piedra-Papel y Tijeras propio sin clases

"""
juego piedra-papel o tijera
con 3 clases;
juego
juegador
gesto
"""
import random as R

class Gesto():
    
    def __init__(self):
        self.piedra = 0
        self.papel = 0
        self.tijera = 0
        
    
    def sale(self):
        pass
        #print ("\nSalio: "\
         #     + str (el_gesto.pipati))
        

# defino jugador uno

el_gesto = Gesto()

el_gesto.pipati = R.randint(1,3)

el_gesto.sale()


# defino jugador dos

el_gesto_dos = Gesto()

el_gesto_dos.pipati = R.randint(1,3)

el_gesto_dos.sale()


def main():
    
# jugador uno     
    
    if el_gesto.pipati == 1:
        pi = "Piedra"
        print("Jugador UNO Salio", pi)
    
    if el_gesto.pipati == 2:
        pa = "Papel"
        print ("Jugador UNO Salio", pa)
        
    if el_gesto.pipati == 3:
        ti = "Tijera"
        print ("Jugador UNO Salio", ti)
        
# jugador dos
        
    if el_gesto_dos.pipati == 1:
        pi = "Piedra"
        print("Jugador DOS Salio", pi)
    
    if el_gesto_dos.pipati == 2:
        pa = "Papel"
        print ("Jugador DOS Salio", pa)
        
    if el_gesto_dos.pipati == 3:
        ti = "Tijera"
        print ("Jugador DOS Salio", ti) 
    
# ahora comparo quien gana
    
    if el_gesto.pipati == 1 and el_gesto_dos.pipati == 1 or \
       el_gesto.pipati == 2 and el_gesto_dos.pipati == 2 or \
       el_gesto.pipati == 3 and el_gesto_dos.pipati == 3:
        print ("\nEmpate!!")
        
    if el_gesto.pipati == 1 and el_gesto_dos.pipati == 2 or \
       el_gesto.pipati == 2 and el_gesto_dos.pipati == 1:
        print ("\nGano Papel")
        
    if el_gesto.pipati == 2 and el_gesto_dos.pipati == 3 or \
       el_gesto.pipati == 3 and el_gesto_dos.pipati == 2:
        print ("\nGano Tijera")
        
             
    if el_gesto.pipati == 1 and el_gesto_dos.pipati == 3 or \
       el_gesto.pipati == 3 and el_gesto_dos.pipati == 1:
        print ("\nGano Piedra")
            
        
main ()

Resultado

>>> %Run juego_pi_a_ti_dos.py
Jugador UNO Salio Tijera
Jugador DOS Salio Piedra

Gano Piedra
>>> 

Ejercicio completo PI-Pa-Ti con Clases

import random as R


class Gesto:
    PIEDRA = 1
    PAPEL = 2
    TIJERA = 3

    def __init__(self):

        self.valor = R.randint(Gesto.PIEDRA, Gesto.TIJERA)

    def __str__(self):
        nombre = ""

        if self.valor == Gesto.PIEDRA:
            nombre = "PIEDRA"
        elif self.valor == Gesto.PAPEL:
            nombre = "PAPEL"
        else:
            nombre = "TIJERA"
        return nombre


class Jugador:

    def __init__(self, nombre):
        self.nombre = nombre
        self.mano = Gesto()

    def hacerGesto(self):
        self.mano = Gesto()


class Pipati:

    def __init__(self, nombre1, nombre2):
        self.jugador1 = Jugador(nombre1)
        self.jugador2 = Jugador(nombre2)

    def quienGana(self):
        if self.jugador1.mano.valor == self.jugador2.mano.valor:
            return None
        if self.jugador1.mano.valor == Gesto.PIEDRA \
           and self.jugador2.mano.valor == Gesto.TIJERA:
            return self.jugador1
        if self.jugador1.mano.valor == Gesto.PAPEL \
           and self.jugador2.mano.valor == Gesto.PIEDRA:
            return self.jugador1
        if self.jugador1.mano.valor == Gesto.TIJERA \
           and self.jugador2.mano.valor == Gesto.PAPEL:
            return self.jugador1
        
        return self.jugador2

    def jugar(self):
        victorias1 = 0
        victorias2 = 0
        jg = 0
        while victorias1 < 2 and victorias2 < 2:
            self.jugador1.hacerGesto()
            print(self.jugador1.nombre, " ==> ", str(self.jugador1.mano))
            self.jugador2.hacerGesto()
            print(self.jugador2.nombre, " ==>", str(self.jugador2.mano))

            x = self.quienGana()

            if x == self.jugador1:
                victorias1 += 1
                print("GANA: ", self.jugador1.nombre)
                jg = 1
            else:
                if x == self.jugador2:
                    victorias2 += 1
                    print("GANA: ", self.jugador2.nombre)
                    jg = 2
                else:
                    print("EMPATE")
        if jg == 1:
            print("GGAANNAADDOORR!! ", self.jugador1.nombre)
        else:
            print("GGAANNAADDOORR!! ", self.jugador2.nombre)


def main():
    juego = Pipati("Juan    ", "Pinchame")
    juego.jugar()


main()

Resultado

>>> %Run juego_pi_a_ti_clases.py
Juan      ==>  TIJERA
Pinchame  ==> PAPEL
GANA:  Juan    
Juan      ==>  PIEDRA
Pinchame  ==> PAPEL
GANA:  Pinchame
Juan      ==>  PAPEL
Pinchame  ==> PAPEL
EMPATE
Juan      ==>  PIEDRA
Pinchame  ==> PAPEL
GANA:  Pinchame
GGAANNAADDOORR!!  Pinchame
>>> 

Leave a Reply

Your email address will not be published. Required fields are marked *