Creación de una Aplicación de Poker en Python

Creación de una Aplicación de Poker en Python

Introducción

El poker es un juego de cartas de estrategia y azar que se ha vuelto muy popular en los últimos años. En este tutorial, aprenderemos a crear una aplicación de poker en Python.

Requisitos

Para seguir este tutorial, necesitarás los siguientes requisitos:

  • Python 3.7 o superior
  • Un IDE de Python, como PyCharm o Visual Studio Code

Estructura de la aplicación

Nuestra aplicación de poker tendrá la siguiente estructura:

app/
    main.py
    cards.py
    game.py

El archivo main.py será el punto de entrada de nuestra aplicación. El archivo cards.py contendrá las clases para representar las cartas de poker. El archivo game.py contendrá el código para jugar al poker.

Creación de las cartas

El archivo cards.py contendrá las siguientes clases:

  • Card: Representa una carta de poker.
  • Suit: Representa un palo de cartas.

El código para la clase Card es el siguiente:

Python
class Card:
    def __init__(self, suit, rank):
        self.suit = suit
        self.rank = rank

    def __str__(self):
        return f"{self.rank} de {self.suit}"

El código para la clase Suit es el siguiente:

Python
class Suit:
    SPADES = "♠"
    CLUBS = "♣"
    DIAMONDS = "♦"
    HEARTS = "♥"

    def __init__(self, suit):
        self.suit = suit

    def __str__(self):
        return self.suit

Creación del juego

El archivo game.py contendrá el código para jugar al poker. El código para el juego básico es el siguiente:

Python
import random

from cards import Card, Suit


class Game:
    def __init__(self, players):
        self.players = players
        self.deck = self.create_deck()

    def create_deck(self):
        deck = []
        for suit in Suit:
            for rank in range(2, 15):
                deck.append(Card(suit, rank))
        random.shuffle(deck)
        return deck

    def deal_cards(self):
        for player in self.players:
            player.hand = []
            for _ in range(5):
                player.hand.append(self.deck.pop())

    def get_winner(self):
        hands = [player.hand for player in self.players]
        winner = hands[0]
        for hand in hands:
            if hand > winner:
                winner = hand
        return winner


def main():
    players = [
        Player("Juan"),
        Player("Pedro"),
        Player("María"),
    ]
    game = Game(players)
    game.deal_cards()
    winner = game.get_winner()
    print(f"El ganador es {winner}")


if __name__ == "__main__":
    main()

Este código crea un juego de poker con 3 jugadores. El juego funciona de la siguiente manera:

  1. El juego crea un mazo de cartas.
  2. El juego reparte 5 cartas a cada jugador.
  3. El juego determina el ganador del juego.

Ejemplo de ejecución

El ganador es Juan

Personalización de la aplicación

La aplicación de poker se puede personalizar de muchas maneras. Por ejemplo, se puede agregar más juegos de poker, como Texas Hold’em o Omaha. También se puede agregar más funciones, como un historial de manos o un sistema de apuestas.

Conclusión

En este tutorial, aprendimos a crear una aplicación de poker en Python. La aplicación es básica, pero puede ser personalizada para crear un juego de poker más completo.