Skip to content

Instantly share code, notes, and snippets.

@pedrojimenezp
Created May 28, 2012 04:20
Show Gist options
  • Save pedrojimenezp/2817205 to your computer and use it in GitHub Desktop.
Save pedrojimenezp/2817205 to your computer and use it in GitHub Desktop.
Sencillo juego en consola de piedra, papel o tijeras...
#Juego para aprender un poco sobre python orientado a objetos por @pedrojimenezp
#Clase que tiene los atributos y metodos de un jugador, en este caso solo tiene el nombre y los puntos
class Jugador():
#cada atributo que inicie por dos guiones bajos (__) es un atributo privado de la clase...
#lo mismo se aplica para los metodos
# metodo contructor que recibe dos parametros el nombre y los puntos del jugador...
def __init__(self, n="",p=0):
# __nombre y __puntos son atributos privados de la clase Jugador
self.__nombre=n
self.__puntos=p
def set_nombre(self,n):
self.__nombre = n
def get_nombre(self):
return self.__nombre
def set_puntos(self, p):
self.__puntos = p
def get_puntos(self):
return self.__puntos
#Clase que contiene los atributos y metodos del juego Piedra Papel o Tijeras
class PPT():
def __init__(self):
#atributo que guarda las posibilidade del juego entre dos jugadores
self.__posibilidades = {
"piedra":{
"piedra":0,
"papel":-1,
"tijeras":1
},
"papel":{
"papel":0,
"tijeras":-1,
"piedra":1
},
"tijeras":{
"tijeras":0,
"piedra":-1,
"papel":1
}
}
#atributo para ir registrando cada enfrentamiento entre los dos jugadores
self.__registro = []
#atributos que guardan las elecciones de cada jugador
self.__eleccion1 = ""
self.__eleccion2 = ""
def set_eleccion1(self,e1):
self.__eleccion1 = e1
def set_eleccion2(self,e2):
self.__eleccion2 = e2
def get_eleccion1(self):
return self.__eleccion1
def get_eleccion2(self):
return self.__eleccion2
def registrar(self):
self.__registro.append({"jugador1":self.__eleccion1,"jugador2":self.__eleccion2})
def get_registro(self):
return self.__registro
def eleccion_ganadora(self):
if self.__eleccion1 != "" and self.__eleccion2 != "":
resultado = self.__posibilidades[self.__eleccion1][self.__eleccion2]
if resultado == 0:
return "Empate"
elif resultado == -1:
return "Jugador2"
elif resultado == 1:
return "Jugador1"
nombre_jugador1 = raw_input("Ingrese el nombre del jugador numero 1: ")
nombre_jugador2 = raw_input("Ingrese el nombre del jugador numero 2: ")
jugador1 = Jugador(nombre_jugador1)
jugador2 = Jugador(nombre_jugador2)
print "\nStart the Game !!! \n"
print "Jugador 1:", jugador1.get_nombre()
print "Jugador 2:", jugador2.get_nombre()
print "\n"
juego = PPT()
#Inicia un ciclo infinito que se para si un jugador presiona x(se retira del juego)
while True:
eleccion1 = raw_input("Jugador1 Ingrese su eleccion (piedra,papel,tijeras) o Ingrese x para retirarse: ")
if eleccion1 == "x":
print "El Jugador 1 se retiro de la partida !!!"
break
eleccion2 = raw_input("Jugador2 Ingrese su eleccion (piedra,papel,tijeras) o Ingrese x para retirarse: ")
if eleccion2 == "x":
print "El Jugador 2 se retiro de la partida !!!"
break
juego.set_eleccion1(eleccion1)
juego.set_eleccion2(eleccion2)
juego.registrar()
resultado = juego.eleccion_ganadora()
if resultado == "Empate":
print juego.get_eleccion1(), " = ", juego.get_eleccion2()
print "Los dos jugadores empatan! \n"
elif resultado == "Jugador2":
print juego.get_eleccion1(), " Pierde con ", juego.get_eleccion2()
print "El jugador 2 gana! \n"
jugador2.set_puntos(jugador2.get_puntos()+1)
elif resultado == "Jugador1":
print juego.get_eleccion1(), " Gana a ", juego.get_eleccion2()
print "El jugador 1 gana! \n"
jugador1.set_puntos(jugador1.get_puntos()+1)
print "Marcador hasta ahora !"
print jugador1.get_nombre(), "<------->", jugador2.get_nombre()
print jugador1.get_puntos(), "<------->", jugador2.get_puntos(),"\n"
print "Registro de la partida:"
print jugador1.get_nombre(), "<------->", jugador2.get_nombre()
for r in juego.get_registro():
print r["jugador1"], "<------->", r["jugador2"]
print "\n"
if jugador1.get_puntos() > jugador2.get_puntos():
print "Ganador del juego:", jugador1.get_nombre()
elif jugador2.get_puntos() > jugador1.get_puntos():
print "Ganador del juego:", jugador2.get_nombre()
elif jugador1.get_puntos() == jugador2.get_puntos():
print "Juego empatado, Los dos jugadores tienen los mismos puntos."
print "\n"
@Klinsmann
Copy link

facil y sencillo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment