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
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
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)
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
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
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)
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)
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)
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
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)
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])
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
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
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])
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()
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()
def step_impl(context, total): context.dealer = Dealer() context.total = total
def step_impl(context): context.dealer = Dealer()
def setUp(self): self.testDealer = Dealer()
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)
def setUp(self): self.testPlayer = Player() self.testDealer = Dealer() self.winner = None
def teste_dealer_descartes_inicio_jogo(): dealer = Dealer() dealer.iniciar_jogo() assert dealer.quantidade_cartas_baralho() == 45
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
def teste_dealer_quantidade_cartas_baralho(): dealer = Dealer() assert dealer.quantidade_cartas_baralho() == 52
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()])
def step_impl(context, hand): context.dealer = Dealer() context.dealer.hand = hand.split(',')
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)
def setUp(self): self.dealer = Dealer(cash_balance=100)
def teste_dealer_52_cartas_antes_do_inicio_da_rodada(): dealer = Dealer() assert dealer.quantidade_cartas_baralho() == 52