Created
May 28, 2012 04:20
-
-
Save pedrojimenezp/2817205 to your computer and use it in GitHub Desktop.
Sencillo juego en consola de piedra, papel o tijeras...
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
facil y sencillo