Exemple #1
0
def dealer_only():
    ui = LogUI()
    g = game.Engine(ui=ui)
    loop = game.main(g)
    play = next(loop)
    while play:
        play = loop.send(play)
Exemple #2
0
def one_player():
    ui = LogUI()
    play = True
    deck = cards.Deck.build(6)
    deck.shuffle()
    deck.random_cut()
    dealer = players.Dealer(name='Dealer')
    player = players.AutoPlayer(name='Player', chips=200)
    g = game.Engine(deck, dealer, (player, ), ui=ui, buyin=2)
    loop = game.main(g)
    play = next(loop)
    while play:
        play = loop.send(play)
Exemple #3
0
def four_player():
    p1 = players.AutoPlayer(name='John', chips=200)
    p2 = players.BetterPlayer(name='Michael', chips=200)
    p3 = players.NeverPlayer(name='Graham', chips=200)
    p4 = players.RandomPlayer(name='Terry', chips=200)
    ui = TableUI(seats=5)
    play = True
    deck = cards.Deck.build(6)
    deck.shuffle()
    deck.random_cut()
    dealer = players.Dealer(name='Dealer')
    g = game.Engine(deck, dealer, (p1, p2, p3, p4), ui=ui, buyin=2)
    loop = game.main(g)
    play = next(loop)
    while play:
        play = loop.send(play)
Exemple #4
0
def two_player():
    p1 = players.AutoPlayer(name='John', chips=200)
    p2 = players.BetterPlayer(name='Michael', chips=200)
    ui = LogUI()
    play = True
    deck = cards.Deck.build(6)
    deck.shuffle()
    deck.random_cut()
    dealer = players.Dealer(name='Dealer')
    g = game.Engine(deck, dealer, (
        p1,
        p2,
    ), ui=ui, buyin=2)
    loop = game.main(g)
    play = next(loop)
    while play:
        play = loop.send(play)
Exemple #5
0
def dui():
    try:
        ui = TableUI(seats=6)
        deck = cards.Deck.build(6)
        deck.shuffle()
        deck.random_cut()
        dealer = players.Dealer(name='Dealer')
        playerlist = []
        for index in range(4):
            playerlist.append(players.make_player(bet=20))
        playerlist.append(players.UserPlayer(name='You', chips=200))
        g = game.Engine(deck, dealer, playerlist, ui=ui, buyin=20)
        loop = game.main(g)
        play = next(loop)
        while play:
            play = loop.send(play)

    except Exception as ex:
        with open('exception.log', 'w') as fh:
            fh.write(str(ex.args))
            tb_str = ''.join(tb.format_tb(ex.__traceback__))
            fh.write(tb_str)
        ui.end()
        raise ex
Exemple #6
0
def main():
    p = argparse.ArgumentParser(description='Blackjack')
    p.add_argument('-d',
                   '--dealer_only',
                   help='Just a dealer game.',
                   action='store_true')
    p.add_argument('-1',
                   '--one_player',
                   help='One player game.',
                   action='store_true')
    p.add_argument('-2',
                   '--two_player',
                   help='Two player game.',
                   action='store_true')
    p.add_argument('-3',
                   '--three_player',
                   help='Three player game.',
                   action='store_true')
    p.add_argument('-4',
                   '--four_player',
                   help='Four player game.',
                   action='store_true')
    p.add_argument('-D', '--dui', help='Dynamic UI game.', action='store_true')
    p.add_argument('-p',
                   '--players',
                   help='Number of random players.',
                   action='store',
                   type=int)
    p.add_argument('-u',
                   '--user',
                   help='Add a human player.',
                   action='store_true')
    p.add_argument('-c',
                   '--chips',
                   help='Number of starting chips.',
                   action='store',
                   type=int,
                   default=200)
    p.add_argument('-C',
                   '--cost',
                   help='Hand bet amount.',
                   action='store',
                   type=int,
                   default=20)
    p.add_argument('-t',
                   '--test',
                   help='Run current test.',
                   action='store_true')
    args = p.parse_args()

    if args.dealer_only:
        dealer_only()
    elif args.one_player:
        one_player()
    elif args.two_player:
        two_player()
    elif args.three_player:
        three_player()
    elif args.four_player:
        four_player()
    elif args.dui:
        dui()
    elif args.test:
        test()
    else:
        if args.chips > 9999999:
            reason = 'Cannot start with more than 9999999 chips.'
            raise ValueError(reason)
        if args.cost > 99999999:
            reason = 'Bets cannot be more than 99999999.'
            raise ValueError(reason)

        playerlist = []
        for _ in range(int(args.players)):
            playerlist.append(players.make_player(args.cost))
        if args.user:
            playerlist.append(players.UserPlayer(name='You', chips=args.chips))

        deck = cards.Deck.build(6)
        deck.shuffle()
        deck.random_cut()
        ui = TableUI(seats=len(playerlist) + 1)
        g = game.Engine(deck, None, playerlist, ui, args.cost)
        try:
            loop = game.main(g)
            play = next(loop)
            while play:
                play = loop.send(play)
        except Exception as ex:
            with open('exception.log', 'w') as fh:
                fh.write(str(ex.args))
                tb_str = ''.join(tb.format_tb(ex.__traceback__))
                fh.write(tb_str)
            ui.end()
            raise ex