Example #1
0
def teste_empate_inicio_rodada():
    dealer = Dealer()
    jogador = Jogador('teste')

    jogador.receber_cartas([Carta('6', ''), Carta('A', ''), Carta('3', '')])
    dealer.receber_cartas([Carta('Q', ''), Carta('Q', '')])
    assert dealer.resultado_jogador(jogador) == 0
Example #2
0
def teste_empate():
    dealer = Dealer()
    jogador = Jogador('teste')

    jogador.receber_cartas([Carta('A', ''), Carta('10', '')])
    dealer.receber_cartas([Carta('J', ''), Carta('A', '')])
    assert dealer.resultado_jogador(jogador) == 0
Example #3
0
	def test_dealer_take_100_from_player_dollars_then_he_or_she_give_100_chips_to_player(self):
		player = PlayerBuilder().withCash(100).create()
		dealer = Dealer()

		dealer.buyChips(player, 100)

		self.assertEqual(player.chips, 100)
Example #4
0
def teste_vitoria_jogador_com_blackjack():
    dealer = Dealer()
    jogador = Jogador('teste')

    jogador.receber_cartas([Carta('10', ''), Carta('A', '')])
    dealer.receber_cartas([Carta('J', ''), Carta('9', '')])
    assert dealer.resultado_jogador(jogador) == 1
Example #5
0
def teste_vitoria_dealer_com_soma_maior_que_jogador():
    dealer = Dealer()
    jogador = Jogador('teste')

    jogador.receber_cartas([Carta('10', ''), Carta('9', '')])
    dealer.receber_cartas([Carta('Q', ''), Carta('J', '')])
    assert dealer.resultado_jogador(jogador) == -1
Example #6
0
	def test_dealer_give_me_x2_bet_prize_if_players_hand_win(self):
		player = PlayerBuilder().withChips(100).withBet(100).withHand(HandBuilder().withWin().create()).create()
		dealer = Dealer()

		dealer.settleGame(player)

		self.assertEqual(player.chips, 200)
Example #7
0
	def test_dealer_take_100_from_player_dollars(self):
		player = PlayerBuilder().withCash(100).create()
		dealer = Dealer()

		dealer.buyChips(player, 100)

		self.assertEqual(player.cash, 0)
Example #8
0
    def test_determine_winners(self):
        """
        Test that the dealer hits at the appropriate times and
        that winning hands are appropriated updated as such.
        """

        # setup deck
        deck = Deck()
        deck.create()
        deck.shuffle()

        # setup gambler, dealer & hands
        dealer = Dealer()
        dealer_hand = Hand()
        dealer.hands.append(dealer_hand)
        gambler = Gambler("Test")
        gambler_hand = Hand()
        gambler.hands.append(gambler_hand)
        players = [gambler, dealer]

        # must hit a soft 17 (A, 6)
        gambler_hand.final_value = 20
        dealer_hand.cards.append(Card('Hearts', 'Ace', 1))
        dealer_hand.cards.append(Card('Hearts', 'Six', 6))
        bj.determine_winners(players, deck)
        self.assertTrue(len(dealer_hand.cards) > 2)

        # must hit on 16 or less (K, 6)
        self.reset_hand_attrs(dealer_hand)
        dealer_hand.cards.append(Card('Hearts', 'King', 10))
        dealer_hand.cards.append(Card('Hearts', 'Six', 6))
        bj.determine_winners(players, deck)
        self.assertTrue(len(dealer_hand.cards) > 2)

        # check dealer bust (K, 6, J)
        dealer_hand.cards.pop()
        dealer_hand.cards.append(Card('Hearts', 'Jack', 10))
        bj.determine_winners(players, deck)
        self.assertTrue(dealer_hand.busted)
        self.assertTrue(gambler_hand.win)

        # check dealer stands on 17 (K, 7)
        self.reset_hand_attrs(dealer_hand)
        dealer_hand.cards.append(Card('Hearts', 'King', 10))
        dealer_hand.cards.append(Card('Hearts', 'Seven', 7))
        bj.determine_winners(players, deck)
        self.assertTrue(len(dealer_hand.cards) == 2)

        # gambler wins with 20 to dealer's 17
        self.assertTrue(gambler_hand.win)

        # check dealer stands on soft 18 (Ace, 7)
        self.reset_hand_attrs(dealer_hand)
        dealer_hand.cards.append(Card('Hearts', 'Ace', 1))
        dealer_hand.cards.append(Card('Hearts', 'Seven', 7))
        bj.determine_winners(players, deck)
        self.assertTrue(len(dealer_hand.cards) == 2)
Example #9
0
def teste_dealer_52_cartas_antes_do_inicio_de_qualquer_rodada():
    # Quando inicia o jogo, todas as cartas são
    # devolvidas, tendo um total de 52, portanto
    # se o jogo for iniciado duas vezes, o total deve
    # após o inicio deve ser 45 em ambas (-5 de descarte, -2 para o Dealer)
    dealer = Dealer()
    dealer.iniciar_jogo()
    dealer.iniciar_jogo()
    assert dealer.quantidade_cartas_baralho() == 45
Example #10
0
	def test_dealer_call_security_if_player_younger_18_years_old_buying_chips(self):
		player = PlayerBuilder().withAge(17).create()
		dealer = Dealer()
		res = False
		try:
			dealer.buyChips(player, 100)
		except YoungerPlayer:
			res = True

		self.assertEqual(res, True)
Example #11
0
def UImain():
    used_cards = []
    cards_showing = []
    deck = []
    for decks in range(1):
        for val in VALS:
            for suit in SUITS:
                deck.append(Card(suit, val))
    random.shuffle(deck)
    blank_card = Card('Plastic', 'Blank')
    rand_index = 8 + random.randint(-4, 4)
    deck.insert(rand_index, blank_card)

    player1 = UIPlayer(200.0, deck, used_cards, cards_showing)
    dealer = Dealer(deck, used_cards, cards_showing)
    while player1.balence > 0:
        os.system('cls' if os.name == 'nt' else 'clear')
        print('Balence:', player1.balence)
        s = int(input('Place wager amount: '))
        player1.set_wager(s)
        deal_cards([dealer, player1])

        # UI player loop
        while (player1.status != Status.STAND):
            print_UI(dealer, player1)
            player1.move()

        while dealer.status != Status.STAND:
            print_UI(dealer, player1, dealer_move=True)
            dealer.move()
            time.sleep(1)
        print_UI(dealer, player1, dealer_move=True)

        dealer_hand_val = dealer.best_hand_val()
        p_hand_val = player1.best_hand_val()

        if p_hand_val > 21 or p_hand_val <= 0:
            print('You lose', player1.wager)
            player1.lose()
        elif player1.has_blackjack() and not dealer.has_blackjack():
            print('You win', player1.wager)
            player1.win()
        elif not player1.has_blackjack() and dealer.has_blackjack():
            print('You lose', player1.wager)
            player1.lose()
        elif p_hand_val > dealer_hand_val:
            print('You win', player1.wager)
            player1.win()
        elif p_hand_val < dealer_hand_val:
            print('You lose', player1.wager)
            player1.lose()

        input('\nhit any key to continue ')
        clear_table([dealer, player1])
Example #12
0
def teste_derrota_jogador_com_soma_maior_que_21():
    dealer = Dealer()
    jogador = Jogador('teste')

    jogador.receber_cartas(
        [Carta('A', ''),
         Carta('A', ''),
         Carta('10', ''),
         Carta('10', '')])
    dealer.receber_cartas([Carta('J', ''), Carta('2', '')])
    assert dealer.resultado_jogador(jogador) == -1
Example #13
0
def teste_dealer_43_cartas_apos_entregar_as_do_jogador_em_duas_rodadas():
    dealer = Dealer()
    jogador = Jogador('teste')
    dealer.iniciar_jogo()
    jogador.receber_cartas(dealer.entregar_cartas_jogador())
    assert dealer.quantidade_cartas_baralho() == 43

    dealer.receber_cartas_jogador(jogador.entregar_cartas())
    dealer.iniciar_jogo()
    jogador.receber_cartas(dealer.entregar_cartas_jogador())
    assert dealer.quantidade_cartas_baralho() == 43
Example #14
0
def main():
    # Initialize
    game_over = False
    deck = build_deck()
    used_cards = []
    p1 = Player(deck, used_cards)
    dealer = Dealer(deck, used_cards)
    players = [p1, dealer]

    while not game_over:
        get_wager()
        deal_cards([p1, dealer])
        p1_move()
        dealer_move()
        eval_hands()
        clear_table([p1, dealer])
Example #15
0
    def __init__(self):

        # game logic related
        self.pot = 0
        self.player = Player()
        self.dealer = Dealer()

        # interface related - add interface elements here
        self.root = Tk()
        self.root.title('Casino')
        self.root.iconbitmap(
            'C:/Users/SavSamuShaman/Desktop/blackjack/pkc2.ico')
        # labels
        self.header_label = Label(
            self.root,
            text="You walk to the table and the dealer ask for your name")
        self.message_label = Label(
            self.root, text='Best of luck a the blackjack table ;)')
        self.error_message_label = Label(self.root)
        self.player_money_label = Label(
            self.root, text=f'Your money : {self.player.chips}')
        self.dealer_money_label = Label(
            self.root, text=f'Dealer money : {self.dealer.chips}')
        self.pot_label = Label(self.root, text=f'Pot : 0')
        self.current_score_label = Label(self.root, text=f'Current score : 0')
        # buttons
        self.hit_me_button = Button(self.root,
                                    text='Hit me',
                                    command=self.hit_me)
        self.stay_button = Button(self.root, text='Stay', command=self.stay)
        self.bet_button = Button(self.root, text='Bet', command=self.bet)
        self.start_button = Button(self.root,
                                   text='Tell the dealer your name',
                                   command=self.set_up_environ)
        # input box
        self.entry = Entry(self.root, width=30)

        # element placement
        self.header_label.grid(row=0, column=1)
        self.entry.grid(row=1, column=1, columnspan=3)
        self.start_button.grid(row=2, column=1, padx=15, pady=20)

        self.root.mainloop()
Example #16
0
def main():
    """Plays the Game"""
    os.system('clear')
    player_name = input("Please enter your name: ")
    p1 = HumanPlayer(player_name, BlackjackHand())

    print("\nWelcome to Bull City Bets - an exclusive Blackjack Casino!\n\n")

    while True:
        d1 = Dealer("dealer", BlackjackHand())
        deck = Deck()
        g = Game(p1, d1, deck)
        print("\nAnte Up!")
        p1.place_bet()
        g.add_bet()
        print("Total Pot: {} Player Purse: {}".format(g.pot, p1.purse))

        if not g.check_initial_blackjack():
            g.player_turn()
            g.dealer_turn()

        g.print_results()

        g.play_again()
Example #17
0
def step_impl(context, total):
    context.dealer = Dealer()
    context.total = total
Example #18
0
def step_impl(context):
    context.dealer = Dealer()
 def setUp(self):
     self.testDealer = Dealer()
Example #20
0
    def test_settle_up(self):
        """
        Test that settle_up() function accurately updates
        each players .money attribute for various outcomes.
        """

        # setup players
        dealer = Dealer()
        player = Gambler('Test')
        players = [player, dealer]

        # setup hands
        dealer_hand = Hand()
        dealer.hands.append(dealer_hand)
        hand = Hand()
        player.hands.append(hand)

        # check loss
        player.money = 500
        hand.wager = 100
        bj.settle_up(players)
        self.assertEqual(player.money, 400)

        # check win
        hand.win = True
        bj.settle_up(players)
        self.assertEqual(player.money, 500)

        # check push
        hand.win = False
        hand.push = True
        bj.settle_up(players)
        self.assertEqual(player.money, 500)

        # check insurance w/ dealer blackjack
        dealer_hand.blackjack = True
        hand.insurance = True
        bj.settle_up(players)
        self.assertEqual(player.money, 550)
        hand.insurance = False
        bj.settle_up(players)
        self.assertEqual(player.money, 550)

        # check insurance w/o dealer blackjack
        dealer_hand.blackjack = False
        hand.insurance = True
        bj.settle_up(players)
        self.assertEqual(player.money, 500)
        hand.insurance = False
        bj.settle_up(players)
        self.assertEqual(player.money, 500)

        # check Blackjack
        hand.push = False
        hand.blackjack = True
        bj.settle_up(players)
        self.assertEqual(player.money, 650)

        # check blackjack with fractional dollars
        hand.wager = 5
        bj.settle_up(players)
        self.assertEqual(player.money, 657.5)

        # check dealer blackjack
        dealer_hand.blackjack = True
        hand.blackjack = False
        bj.settle_up(players)
        self.assertEqual(player.money, 652.5)
Example #21
0
 def setUp(self):
     self.testPlayer = Player()
     self.testDealer = Dealer()
     self.winner = None
Example #22
0
def teste_dealer_descartes_inicio_jogo():
    dealer = Dealer()
    dealer.iniciar_jogo()
    assert dealer.quantidade_cartas_baralho() == 45
Example #23
0
def teste_somatorio_cartas():
    dealer = Dealer()

    assert dealer.somatorio_cartas(
        [Carta('9', ''), Carta('A', ''),
         Carta('A', '')]) == 21

    assert dealer.somatorio_cartas([
        Carta('7', ''),
        Carta('A', ''),
        Carta('A', ''),
        Carta('A', ''),
        Carta('A', '')
    ]) == 21

    assert dealer.somatorio_cartas(
        [Carta('7', ''),
         Carta('A', ''),
         Carta('A', ''),
         Carta('A', '')]) == 20

    assert dealer.somatorio_cartas(
        [Carta('8', ''),
         Carta('A', ''),
         Carta('A', ''),
         Carta('A', '')]) == 21

    assert dealer.somatorio_cartas([
        Carta('9', ''),
        Carta('A', ''),
        Carta('A', ''),
        Carta('A', ''),
        Carta('A', '')
    ]) == 13

    assert dealer.somatorio_cartas([
        Carta('10', ''),
        Carta('A', ''),
        Carta('A', ''),
        Carta('A', ''),
        Carta('A', '')
    ]) == 14

    assert dealer.somatorio_cartas(
        [Carta('J', ''),
         Carta('A', ''),
         Carta('A', ''),
         Carta('3', '')]) == 15

    assert dealer.somatorio_cartas(
        [Carta('J', ''), Carta('A', ''),
         Carta('A', '')]) == 12

    assert dealer.somatorio_cartas(
        [Carta('A', ''),
         Carta('A', ''),
         Carta('A', ''),
         Carta('A', '')]) == 14

    assert dealer.somatorio_cartas(
        [Carta('2', ''),
         Carta('5', ''),
         Carta('9', ''),
         Carta('A', '')]) == 17

    assert dealer.somatorio_cartas(
        [Carta('2', ''),
         Carta('6', ''),
         Carta('9', ''),
         Carta('4', '')]) == 21

    assert dealer.somatorio_cartas([Carta('A', ''), Carta('A', '')]) == 12

    assert dealer.somatorio_cartas(
        [Carta('A', ''), Carta('A', ''),
         Carta('J', '')]) == 12

    assert dealer.somatorio_cartas(
        [Carta('10', ''),
         Carta('J', ''),
         Carta('A', ''),
         Carta('A', '')]) == 22

    assert dealer.somatorio_cartas([
        Carta('10', ''),
        Carta('J', ''),
        Carta('A', ''),
        Carta('A', ''),
        Carta('A', '')
    ]) == 23

    assert dealer.somatorio_cartas([
        Carta('10', ''),
        Carta('J', ''),
        Carta('2', ''),
        Carta('2', ''),
        Carta('A', '')
    ]) == 25

    assert dealer.somatorio_cartas(
        [Carta('10', ''),
         Carta('J', ''),
         Carta('3', ''),
         Carta('A', '')]) == 24

    assert dealer.somatorio_cartas([
        Carta('10', ''),
        Carta('J', ''),
        Carta('3', ''),
        Carta('A', ''),
        Carta('A', '')
    ]) == 25

    assert dealer.somatorio_cartas(
        [Carta('10', ''),
         Carta('A', ''),
         Carta('A', ''),
         Carta('J', '')]) == 22

    assert dealer.somatorio_cartas(
        [Carta('10', ''),
         Carta('5', ''),
         Carta('2', ''),
         Carta('3', '')]) == 20

    assert dealer.somatorio_cartas([
        Carta('10', ''),
        Carta('5', ''),
        Carta('2', ''),
        Carta('3', ''),
        Carta('A', '')
    ]) == 21

    assert dealer.somatorio_cartas(
        [Carta('10', ''), Carta('Q', ''),
         Carta('A', '')]) == 21

    assert dealer.somatorio_cartas(
        [Carta('10', ''), Carta('K', ''),
         Carta('2', '')]) == 22

    assert dealer.somatorio_cartas([Carta('J', ''), Carta('2', '')]) == 12

    assert dealer.somatorio_cartas([Carta('A', ''), Carta('A', '')]) == 12

    assert dealer.somatorio_cartas(
        [Carta('A', ''), Carta('A', ''),
         Carta('9', '')]) == 21
Example #24
0
def teste_dealer_quantidade_cartas_baralho():
    dealer = Dealer()
    assert dealer.quantidade_cartas_baralho() == 52
Example #25
0
def simulate_trial(num_hands):
    """ returns balence_log array for player one during simulated number of hands """
    balence_log = []
    # init cards
    used_cards = []
    cards_showing = []
    deck = []
    for _ in range(8):
        for val in VALS:
            for suit in SUITS:
                deck.append(Card(suit, val))
    random.shuffle(deck)
    blank_card = Card('Plastic', 'Blank')
    rand_index = 8 + random.randint(-4, 4)
    deck.insert(rand_index, blank_card)

    dealer = Dealer(deck, used_cards, cards_showing)
    # player1 = SimplePlayer(0, deck, used_cards, cards_showing)
    player1 = BasicStratPlayer(0, deck, used_cards, cards_showing, dealer)
    # player1 = HLPlayer(0, deck, used_cards, cards_showing, dealer)

    players = [player1]
    for j in range(num_hands):
        deal_cards([dealer] + players)
        balence_log.append(player1.balence)

        # set wager
        for player in players:
            player.set_wager(1)

        # player loop
        while sum([player.status for player in players]):
            for player in players:
                if player.status == Status.STAND:
                    continue
                player.move()

        # dealer loop
        while dealer.status != Status.STAND:
            dealer.move()

        # eval hands
        dealer_hand_val = dealer.best_hand_val()
        for player in players:
            # no split
            if len(player.split_hand) == 0:
                p_hand_val = player.best_hand_val()
                if p_hand_val > 21 or p_hand_val <= 0:
                    player.lose()
                elif player.has_blackjack() and not dealer.has_blackjack():
                    player.win(1.5)
                elif not player.has_blackjack() and dealer.has_blackjack():
                    player.lose()
                elif p_hand_val > dealer_hand_val:
                    player.win()
                elif p_hand_val < dealer_hand_val:
                    player.lose()
            # split hands
            else:
                for i in range(2):
                    if i == 1:
                        player.hand = player.split_hand
                        player.set_wager(player.split_wager)
                    p_hand_val = player.best_hand_val()
                    if p_hand_val > 21 or p_hand_val <= 0:
                        player.lose()
                    elif p_hand_val > dealer_hand_val:
                        player.win()
                    elif p_hand_val < dealer_hand_val:
                        player.lose()

        clear_table([dealer] + players)
    return balence_log
 def __init__(self):
     self._deck = Deck()
     self._deck.shuffle()
     self._player = Player([self._deck.deal(), self._deck.deal()])
     self._dealer = Dealer([self._deck.deal(), self._deck.deal()])
Example #27
0
def step_impl(context, hand):
    context.dealer = Dealer()
    context.dealer.hand = hand.split(',')
Example #28
0
            return self.A[1]
        if player_points < 12:
            return self.A[0]
        else:
            A, Q = self.A, self.Q
            s = self.get_state_name(dealer)
            if epsilon is None:
                epsilon = 1.0 / (
                    1 + 4 * math.log10(1 + player.total_learning_times))
            return epsilon_greedy_policy(A, s, Q, epsilon)


A = ["继续叫牌", "停止叫牌"]
display = False
player = MC_Player(A=A, display=display)
dealer = Dealer(A=A, display=display)
arena = Arena(A=A, display=display)
arena.play_games(dealer=dealer, player=player, num=200000, show_statistic=True)

draw_value(player.Q, useable_ace=True, is_q_dict=True, A=player.A)
draw_policy(epsilon_greedy_policy,
            player.A,
            player.Q,
            epsilon=1e-10,
            useable_ace=True)
draw_value(player.Q, useable_ace=False, is_q_dict=True, A=player.A)
draw_policy(epsilon_greedy_policy,
            player.A,
            player.Q,
            epsilon=1e-10,
            useable_ace=False)
Example #29
0
 def setUp(self):
     self.dealer = Dealer(cash_balance=100)
Example #30
0
def teste_dealer_52_cartas_antes_do_inicio_da_rodada():
    dealer = Dealer()
    assert dealer.quantidade_cartas_baralho() == 52