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
>>>