Ejemplo n.º 1
0
 def __init__(self, tablero, jugador_humano, jugador_robot):
     self.tablero = tablero
     self.humano = jugador_humano
     self.robot = jugador_robot
     self.mazo = Baraja()
     self.apuesta_mano = 0
     self.cartas_visibles = []
     self.cartas_mesa_ocultas = []
Ejemplo n.º 2
0
####

# COMIENZA EL JUEGO

####
####

print('Instrucciones: ')
k = ' '
nombre = input('¿Cuál es tu nombre?  ')
while k != '':
    k = input('Presiona <ENTER> para jugar.  ')
yo = Jugador()
robot = Jugador()
tablero = Tablero()
baraja = Baraja()
controlador = ControlarJuego()

jugar = 'si'

while jugar == 'si':
    apostar = True
    while apostar:
        gana = ''
        baraja.barajar()
        yo.cartas = []
        yo.apuesta = 0
        robot.cartas = []
        robot.apuesta = 0
        controlador.cartas_mesa = []
        controlador.repartir_cartas(yo, robot, baraja)
Ejemplo n.º 3
0
#    print(Mesa)
#    sleep(0.3)
#    Mesa.escribirMensaje('*** *   *  |',34,13)
#    Mesa.escribirMensaje(' *  **  *  |',34,14)
#    Mesa.escribirMensaje(' *  * * *  |',34,15)
#    Mesa.escribirMensaje(' *  *  **   ',34,16)
#    Mesa.escribirMensaje('*** *   *  *',34,17)
#    print(Mesa)
#    sleep(0.6)
#    Mesa.borrarZona(32,13,16,5)
#    print(Mesa)


#all_in_anm()



#print(Mesa)
Mesaguia=Tablero()
mazo=Baraja()
Mesaguia.dibujarBorde(0,0,79,19)
cartita=mazo.obtenerCarta()
cartita.definirEstado('oculto')
Mesaguia.dibujarCarta(cartita,32,8)
cartita.definirEstado('visible')
Mesaguia.dibujarCarta(cartita,35,10)

Mesaguia.escribirMensaje('Procura que este rectangulo se vea completo,',17,4)
Mesaguia.escribirMensaje('los bordes laterales y superior deben calzar con los del modulo de ejecucion',2,5)
print(Mesaguia)
Ejemplo n.º 4
0
# importo el modulo de poker
# cargo las funciones de poker
from poker import Carta, Baraja, Tablero
from poker import obtenerApuestaRobot, compararJugadas

# creo la baraja
deck = Baraja()

# reparto cartas
cartasHumano = []
cartasRobot = []
cartasMesa = []

# 2 cartas para cada jugador
for i in range(2):
    cartasHumano.append(deck.obtenerCarta())
    cartasRobot.append(deck.obtenerCarta())

# 5 cartas en la mesa
for i in range(5):
    cartasMesa.append(deck.obtenerCarta())

# Hago un dibujo dibujo simple en el tablero
table = Tablero()

# dibujo cartas de la mesa
xi = 10
yi = 2
x = xi
for carta in cartasMesa:
    table.dibujarCarta(carta, x, yi)
Ejemplo n.º 5
0
class control_juego:  #clase contiene atributos del juego
    def __init__(self, tablero, jugador_humano, jugador_robot):
        self.tablero = tablero
        self.humano = jugador_humano
        self.robot = jugador_robot
        self.mazo = Baraja()
        self.apuesta_mano = 0
        self.cartas_visibles = []
        self.cartas_mesa_ocultas = []

    def comenzar_mano(self):
        self.all_in = False
        self.mazo.barajar()
        self.apuesta_mano = 0
        self.humano.iniciar_mano()
        self.robot.iniciar_mano()
        self.tablero.escribirMensaje('Apuesta actual:', 33, 16)
        self.tablero.escribirMensaje('Pozo acumulado:', 33, 13)
        self.tablero.borrarZona(0, 4, 15, 1)
        self.tablero.borrarZona(65, 4, 14, 1)
        self.cartas_mesa_ocultas = [[18, 3], [27, 3], [36, 3], [45, 3],
                                    [54, 3]]
        self.cartas_visibles = []
        self.humano.cartas.append(self.mazo.obtenerCarta())
        self.robot.cartas.append(self.mazo.obtenerCarta())
        self.humano.cartas.append(self.mazo.obtenerCarta())
        self.robot.cartas.append(self.mazo.obtenerCarta())
        for carta in self.robot.cartas:
            carta.definirEstado('oculto')
        for posicion in self.cartas_mesa_ocultas:
            posicion.insert(0, self.mazo.obtenerCarta())
            posicion[0].definirEstado('oculto')

    def repartir_animado(self, retardo):
        self.cartas_iniciales=[[self.humano.cartas[0],self.humano.posicioncartas[0][0],self.humano.posicioncartas[0][1]], \
                            [self.robot.cartas[0],self.robot.posicioncartas[0][0],self.robot.posicioncartas[0][1]], \
                            [self.humano.cartas[1],self.humano.posicioncartas[1][0],self.humano.posicioncartas[1][1]],  \
                            [self.robot.cartas[1],self.robot.posicioncartas[1][0],self.robot.posicioncartas[1][1]]] #, \
        #self.cartas_mesa_ocultas[0], self.cartas_mesa_ocultas[1],self.cartas_mesa_ocultas[2],   \  #lo comente porque me gustaba como quedaba repartiendo todas
        #self.cartas_mesa_ocultas[3],self.cartas_mesa_ocultas[4]]     #las cartas al principio y dando vuelta las de la mesa, pero no estaba permitido parece
        self.limpiar_tablero()
        print(self.tablero)
        for carta in self.cartas_iniciales:
            sleep(retardo)
            self.tablero.dibujarCarta(carta[0], carta[1], carta[2])
            print(self.tablero)
            sleep(retardo)

    def mostrar_mesa_animado(self, carta_inicio, carta_fin, retardo_prog):
        if carta_inicio > carta_fin:
            return
        for i in range(carta_inicio - 1, carta_fin):
            self.cartas_mesa_ocultas[i][0].definirEstado('visible')
            self.cartas_visibles.append(self.cartas_mesa_ocultas[i][0])
            self.tablero.dibujarCarta(self.cartas_visibles[i],
                                      self.cartas_mesa_ocultas[i][1],
                                      self.cartas_mesa_ocultas[i][2])
            sleep(retardo_prog + i / 7)
            print(self.tablero)

    def limpiar_tablero(self):
        self.tablero.borrarZona(16, 3, 48, 7)
        self.tablero.borrarZona(6, 12, 19, 7)
        self.tablero.borrarZona(56, 12, 19, 7)
        self.tablero.borrarZona(38, 14, 11, 1)

    def pedir_apuestas(self, carta):
        self.humano.apuesta = 0
        self.robot.apuesta = 0
        if self.humano.dinero == 0:
            print('No tienes mas dinero, la apuesta queda hasta aqui.')
            input('presiona Enter para continuar')
            self.all_in = True
            self.humano.apuesta = self.humano.dinero
            self.robot.dinero += (self.robot.apuesta - self.humano.apuesta)
            self.robot.apuesta = self.humano.apuesta
            self.tablero.escribirMensaje(str(self.robot.dinero), 69, 9)
            print(self.tablero)
            self.mostrar_mesa_animado(carta, 5, 0.2)
            return
        self.tablero.escribirMensaje('Tu apuesta:', 2, 4)
        self.tablero.escribirMensaje('Su apuesta:', 67, 4)
        self.humano.apostar(0)
        if self.humano.all_in:
            if self.robot.dinero < self.humano.dinero:
                self.humano.all_in = False
                print(
                    'No puedes hacer un all in si tu contrincante tiene menos dinero.'
                )
                self.humano.apostar(0)
            else:
                if self.robot.apostar(self.cartas_visibles,
                                      self.humano.apuesta) == 0:
                    self.tablero.borrarZona(5, 9, 10, 1)
                    self.tablero.borrarZona(69, 9, 10, 1)
                    self.tablero.escribirMensaje(str(self.robot.dinero), 69, 9)
                    self.tablero.escribirMensaje(str(self.humano.dinero), 5, 9)
                    self.robot.retirarse = True
                else:
                    all_in_anm(self)
                    self.all_in = True
                    self.humano.apuesta += self.humano.dinero
                    self.humano.dinero = 0
                    self.robot.dinero += (self.robot.apuesta -
                                          self.humano.apuesta)
                    self.robot.apuesta = self.humano.apuesta
                    self.apuesta_mano += (self.humano.apuesta +
                                          self.robot.apuesta)
                    self.tablero.borrarZona(0, 5, 15, 1)
                    self.tablero.borrarZona(65, 5, 14, 1)
                    self.tablero.borrarZona(5, 9, 10, 1)
                    self.tablero.borrarZona(69, 9, 10, 1)
                    self.tablero.escribirMensaje(str(self.robot.dinero), 69, 9)
                    self.tablero.escribirMensaje(str(self.humano.dinero), 5, 9)
                    self.tablero.escribirMensaje(
                        '$' + str(self.humano.apuesta),
                        ((7 - len('$' + str(self.humano.apuesta)) // 2)), 5)
                    self.tablero.escribirMensaje(
                        '$' + str(self.robot.apuesta),
                        ((72 - len('$' + str(self.robot.apuesta)) // 2)), 5)
                    print(self.tablero)
                    self.mostrar_mesa_animado(carta, 5, 0.2)
                    return
        self.tablero.escribirMensaje('$' + str(self.humano.apuesta), 38, 17)
        print(self.tablero)
        while not self.humano.retirarse and not self.robot.retirarse:
            if (
                    self.robot.dinero <
                (self.humano.apuesta - self.robot.apuesta)
                    and randint(0, 5) < 2
            ) or self.robot.dinero == 0:  #implementado para que a veces el robot decida hacer all in
                all_in_anm(self)
                self.tablero.borrarZona(32, 13, 16, 5)
                self.tablero.escribirMensaje('Tu contrincante', 33, 14)
                self.tablero.escribirMensaje('limita la', 36, 15)
                self.tablero.escribirMensaje('apuesta, no', 35, 16)
                self.tablero.escribirMensaje('tiene mas dinero', 32, 17)
                self.all_in = True
                self.robot.apuesta += self.robot.dinero
                self.robot.dinero = 0
                self.humano.dinero += (self.humano.apuesta -
                                       self.robot.apuesta)
                self.humano.apuesta = self.robot.apuesta
                self.apuesta_mano += (self.humano.apuesta + self.robot.apuesta)
                self.tablero.borrarZona(0, 5, 15, 1)
                self.tablero.borrarZona(65, 5, 14, 1)
                self.tablero.borrarZona(5, 9, 10, 1)
                self.tablero.borrarZona(69, 9, 10, 1)
                self.tablero.escribirMensaje(str(self.robot.dinero), 69, 9)
                self.tablero.escribirMensaje(str(self.humano.dinero), 5, 9)
                self.tablero.escribirMensaje(
                    '$' + str(self.humano.apuesta),
                    ((7 - len('$' + str(self.humano.apuesta)) // 2)), 5)
                self.tablero.escribirMensaje(
                    '$' + str(self.robot.apuesta),
                    ((72 - len('$' + str(self.robot.apuesta)) // 2)), 5)
                print(self.tablero)
                input('presiona Enter para continuar')
                self.mostrar_mesa_animado(carta, 5, 0.2)
                return
            self.robot.apostar(self.cartas_visibles, self.humano.apuesta)
            if self.robot.apuesta == 0 and not self.humano.apuesta == 0:
                self.tablero.borrarZona(5, 9, 10, 1)
                self.tablero.borrarZona(69, 9, 10, 1)
                self.tablero.escribirMensaje(str(self.robot.dinero), 69, 9)
                self.tablero.escribirMensaje(str(self.humano.dinero), 5, 9)
                self.robot.retirarse = True
            self.tablero.escribirMensaje('$' + str(self.robot.apuesta), 38, 17)
            print(self.tablero)
            if self.robot.apuesta == self.humano.apuesta:
                self.tablero.borrarZona(32, 13, 16, 5)
                self.tablero.escribirMensaje('Tu contrincante', 33, 14)
                self.tablero.escribirMensaje('ha igualado la', 34, 15)
                self.tablero.escribirMensaje('apuesta', 37, 16)
                print(self.tablero)
                sleep(1.5)
                self.tablero.borrarZona(32, 13, 16, 5)
                self.tablero.escribirMensaje('Apuesta actual:', 33, 16)
                self.tablero.escribirMensaje('Pozo acumulado:', 33, 13)
                self.tablero.escribirMensaje('$' + str(self.robot.apuesta), 38,
                                             17)
                if self.apuesta_mano != 0:
                    self.tablero.escribirMensaje('$' + str(self.apuesta_mano),
                                                 38, 14)
                print(self.tablero)
                break
            elif self.robot.retirarse:
                break
            else:
                self.tablero.borrarZona(32, 13, 16, 5)
                self.tablero.escribirMensaje('Tu contrincante', 33, 14)
                self.tablero.escribirMensaje('ha subido la', 35, 15)
                self.tablero.escribirMensaje('apuesta', 37, 16)
                print(self.tablero)
                sleep(1.5)
                self.tablero.borrarZona(32, 13, 16, 5)
                self.tablero.escribirMensaje('Apuesta actual:', 33, 16)
                self.tablero.escribirMensaje('Pozo acumulado:', 33, 13)
                self.tablero.escribirMensaje('$' + str(self.robot.apuesta), 38,
                                             17)
                if self.apuesta_mano != 0:
                    self.tablero.escribirMensaje('$' + str(self.apuesta_mano),
                                                 38, 14)
                print(self.tablero)
            if self.humano.dinero <= self.robot.apuesta - self.humano.apuesta:
                apostar_todo = input(
                    'Decide: hacer un all in para limitar la apuesta y jugar la mano, o retirarte.\n(all in/retirarse): '
                )
                while apostar_todo != 'all in' and apostar_todo != 'retirarse':
                    apostar_todo = input(
                        'Decide: hacer un all in para limitar la apuesta y jugar la mano, o retirarte.\n(all in/retirarse): '
                    )
                if apostar_todo == 'all in':
                    all_in_anm(self)
                    self.all_in = True
                    self.humano.apuesta += self.humano.dinero
                    self.humano.dinero = 0
                    self.robot.dinero += (self.robot.apuesta -
                                          self.humano.apuesta)
                    self.robot.apuesta = self.humano.apuesta
                    self.tablero.borrarZona(0, 5, 15, 1)
                    self.tablero.borrarZona(65, 5, 14, 1)
                    self.tablero.borrarZona(5, 9, 10, 1)
                    self.tablero.borrarZona(69, 9, 10, 1)
                    self.tablero.escribirMensaje(str(self.robot.dinero), 69, 9)
                    self.tablero.escribirMensaje(str(self.humano.dinero), 5, 9)
                    self.tablero.escribirMensaje(
                        '$' + str(self.humano.apuesta),
                        ((7 - len('$' + str(self.humano.apuesta)) // 2)), 5)
                    self.tablero.escribirMensaje(
                        '$' + str(self.robot.apuesta),
                        ((72 - len('$' + str(self.robot.apuesta)) // 2)), 5)
                    print(self.tablero)
                    self.mostrar_mesa_animado(carta, 5, 0.2)
                if apostar_todo == 'retirarse':
                    self.humano.retirarse = True
            else:
                print('(En tu apuesta, ingresa $' +
                      str(self.robot.apuesta - self.humano.apuesta) +
                      ' para igualar)')
                self.humano.apostar(self.robot.apuesta - self.humano.apuesta)
                while self.humano.all_in:
                    self.humano.all_in = False
                    print(
                        'lo siento, solo puedes hacer all in en la primera apuesta de la ronda, estamos trabajando para\nmejorar esto...'
                    )
                    self.humano.apostar(self.robot.apuesta -
                                        self.humano.apuesta)
                self.tablero.escribirMensaje('$' + str(self.humano.apuesta),
                                             38, 17)
            if self.robot.apuesta == self.humano.apuesta or self.humano.retirarse:
                break
        if self.robot.retirarse:
            self.humano.recibir_dinero(self.humano.apuesta +
                                       self.robot.apuesta + self.apuesta_mano)
        elif self.humano.retirarse:
            self.robot.recibir_dinero(self.humano.apuesta +
                                      self.robot.apuesta + self.apuesta_mano)
        else:
            self.apuesta_mano += (self.humano.apuesta + self.robot.apuesta)
            self.tablero.escribirMensaje('$' + str(self.apuesta_mano), 38, 14)
            self.tablero.borrarZona(38, 17, 11, 1)
        print(self.tablero)

    def repartija(self, respuesta_compararjugadas):
        if respuesta_compararjugadas == 'gana_humano':
            self.humano.recibir_dinero(self.apuesta_mano)
            self.tablero.borrarZona(32, 13, 16, 5)
            self.tablero.escribirMensaje('Ganaste!', 37, 14)
            self.tablero.escribirMensaje('Te llevas:', 36, 15)
            self.tablero.escribirMensaje(
                '$' + str(self.apuesta_mano),
                ((16 - len('$' + str(self.apuesta_mano)) // 2) + 24), 16)
            print(self.tablero)
        elif respuesta_compararjugadas == 'gana_robot':
            self.robot.recibir_dinero(self.apuesta_mano)
            self.tablero.borrarZona(32, 13, 16, 5)
            self.tablero.escribirMensaje('Has perdido', 35, 14)
            self.tablero.escribirMensaje('Tu oponente', 35, 15)
            self.tablero.escribirMensaje('se  lleva:', 36, 16)
            self.tablero.escribirMensaje(
                '$' + str(self.apuesta_mano),
                ((16 - len('$' + str(self.apuesta_mano)) // 2) + 24), 17)
            print(self.tablero)

        elif respuesta_compararjugadas == 'empate':
            self.robot.recibir_dinero(self.apuesta_mano // 2)
            self.humano.recibir_dinero(self.apuesta_mano // 2)
            self.tablero.borrarZona(32, 13, 16, 5)
            self.tablero.escribirMensaje('Empate!', 37, 14)
            self.tablero.escribirMensaje('Cada  uno', 36, 15)
            self.tablero.escribirMensaje('se lleva:', 36, 16)
            self.tablero.escribirMensaje(
                '$' + str(self.apuesta_mano // 2),
                ((16 - len('$' + str(self.apuesta_mano // 2)) // 2) + 24), 17)
            print(self.tablero)
Ejemplo n.º 6
0
def setear_mesa_y_juego(Mesa):  #setea los graficos iniciales

    bordes = [[30, 0, 19, 2], [15, 2, 49, 8], [5, 11, 20, 8], [55, 11, 20, 8],
              [31, 12, 18, 6]]
    for borde in bordes:
        Mesa.dibujarBorde(borde[0], borde[1], borde[2], borde[3])
    mensajes_iniciales=[["  Texas  Hold'em  ",31,1],[' Cartas en mesa ',32,10],[' Tus cartas ',5,19],[' Contrincante ',62,19],['$:',3,9],['$:',67,9],\
                        ["Bienvenido a Texas Hold'em, en este juego de",18,3],["cartas debes formar la mejor combinacion posible",16,4],['ocupando tus cartas y las de la mesa.',21,5],\
                        ["En cada ronda se da vuelta un numero de cartas",17,6],["y se debe apostar, ten en cuenta que cuando se",17,7],["pida igualar la apuesta del contrincante,  debes",16,8],\
                        ["ingresar lo que te falta y no la apuesta total.",17,9]]
    for mensaje in mensajes_iniciales:
        Mesa.escribirMensaje(mensaje[0], mensaje[1], mensaje[2])
    print(Mesa)

    texas=['******* ****** *     * ****** ******','   *    *       *   *  *    * *     ','   *    *        * *   *    * *     ',   \
           '   *    ******    *    ****** ******','   *    *        * *   *    *      *','   *    *       *   *  *    *      *',   \
           '   *    ****** *     * *    * ******']

    holdem=['*    * ****** *     ****    * ****** *     *','*    * *    * *     *   *   * *      **   **','*    * *    * *     *    *  * *      * * * *',\
            '****** *    * *     *    *    ****** *  *  *','*    * *    * *     *    *    *      *     *','*    * *    * *     *   *     *      *     *',\
            '*    * ****** ***** ****      ****** *     *']

    input(
        'Aqui ingresaras tus apuestas, comandos especiales: ingresar "all in" despues del\nsigno $ significa apostar todo tu dinero, en el mismo lugar, si ingresas 0,\nsignifica que no aumentas la apuesta. Enter para continuar'
    )
    Mesa.borrarZona(16, 3, 48, 7)

    Instruccion1=[['Este juego contiene simples y modestas',21,3],['animaciones, que estan probadas en la Terminal',17,4],['del sistema operativo Ubuntu.',26,5],\
                    ['Si esta corriendo este programa en otra interfaz',16,6],['como IDLE, porfavor ajuste la ventana con',20,7],['respecto a este tablero.',29,8]]
    for mensaje in Instruccion1:
        Mesa.escribirMensaje(mensaje[0], mensaje[1], mensaje[2])
    print(Mesa)
    Mesa.borrarZona(16, 3, 48, 7)

    guia = input(
        'Quieres una guia para ajustar el tablero? (recomendado), aparecera un borde\npara que puedas ajustar mas facilmente (si/no): '
    )
    while guia != 'si' and guia != 'no':
        guia = input(
            'Quieres una guia para ajustar el tablero? (recomendado), aparecera un borde\npara que puedas ajustar mas facilmente (si/no): '
        )
    if guia == 'si':  #muestra el borde para ajustar pantalla si el usuario lo requiere
        Mesaguia = Tablero()
        mazo = Baraja()
        Mesaguia.dibujarBorde(0, 0, 79, 19)
        cartita = mazo.obtenerCarta()
        cartita.definirEstado('oculto')
        Mesaguia.dibujarCarta(cartita, 32, 8)
        cartita.definirEstado('visible')
        Mesaguia.dibujarCarta(cartita, 35, 10)
        Mesaguia.escribirMensaje(
            'Procura que este rectangulo se vea completo,', 17, 4)
        Mesaguia.escribirMensaje(
            'los bordes laterales y superior deben calzar con los del modulo de ejecucion',
            2, 5)
        print(Mesaguia)
        print(
            'Este pedazo se ocupara para que ingreses tus apuestas, asique procura que\neste mensaje tambien se vea correctamente hasta la siguiente linea\n(Enter para continuar)',
            end='')
        input('')
        bordes = [[30, 0, 19, 2], [15, 2, 49, 8], [5, 11, 20, 8],
                  [55, 11, 20, 8], [31, 12, 18, 6]]
        for borde in bordes:
            Mesa.dibujarBorde(borde[0], borde[1], borde[2], borde[3])
        mensajes_iniciales = [["  Texas  Hold'em  ", 31, 1],
                              [' Cartas en mesa ', 32, 10],
                              [' Tus cartas ', 5, 19],
                              [' Contrincante ', 62, 19], ['$:', 3, 9],
                              ['$:', 67, 9]]
        for mensaje in mensajes_iniciales:
            Mesa.escribirMensaje(mensaje[0], mensaje[1], mensaje[2])
        print(Mesa)

    anm1(texas, 22, 36, Mesa)
    anm1(holdem, 18, 45, Mesa)
    anm2(texas, 22, 36, Mesa)
    anm2(holdem, 18, 45, Mesa)