def test_get_face_up_card_AND_get_face_down_card(self): d = Dealer() empty_cc = CardCollection() dest_cc = CardCollection() d.add_card_to_hand(3) self.assertEqual(d.get_face_up_card(), 3) d.add_card_to_hand(4) self.assertEqual(d.get_face_down_card(), 4)
def __init__(self, num_player=1, player_tokens=1000, min_bet=10, max_bet=500, ndecks=6, shuffle_lim=10, sleep_time=0.7): # self.players = [Player.Player(ntokens=player_tokens) for _ in range(num_player)] self.player = Player(ntokens=player_tokens) self.dealer = Dealer() self.draw_count = 0 # keeps track of number of draws - first two counts as one self.min_bet = min_bet self.max_bet = max_bet self.current_bet = 0 self.sleep_time = sleep_time self.deck = Deck(ndecks, shuffle_lim)
def test_add_card_to_hand_AND_move_all_card(self): d = Dealer() empty_cc = CardCollection() dest_cc = CardCollection() d.add_card_to_hand(3) d.add_card_to_hand(4) d.add_card_to_hand(10) self.assertEqual(empty_cc, dest_cc) d.move_all_cards(dest_cc) self.assertEqual(empty_cc, d.hand) expected_dest = CardCollection() expected_dest[3] = 1 expected_dest[4] = 1 expected_dest[10] = 1 self.assertEqual(dest_cc, expected_dest)
def __init__(self): self.deck_of_cards = DeckOfCards() self.dealer = Dealer(self) self.player = HumanPlayer(self, 10000) #The human player starts with 10000 coins
def __init__(self): self.deck_of_cards = DeckOfCards() self.dealer = Dealer(self) self.player = Player(self, 10) #The human player starts with 10 coins self.start_game()
def __init__(self, *players): self.dealer = Dealer() self.shoe = Shoe() if not players: raise ValueError("No players entered.") self.players = [Player(player) for player in players]
def game(player): """ Данная функция управляет логикой игры, благодаря ней можно будет запускать несколько игр в разных потоках """ in_out.rules(player) card_deck = CardDeck() dealer = Dealer(player.resource) while True: try: # Вначале игры все карты возвращаются в колоду, даже # в начале игры, когда карты не розданы это не повредит # это сделано чтобы излишне не усложнять код card_deck.take_cards(player.return_cards()) card_deck.take_cards(dealer.return_cards()) card_deck.shuffle() # Переменные указывающие на наличие комбинации Блекджек у игрока # и диллера player_blackjack = False dealer_blackjack = False # Определить, есть ли деньги у игрока, если нет, то игра завершена # Также уточняется хочет ли пользователь играть if player.money < 1 or not in_out.start_game(player): in_out.finish(player) # Предложить сделать ставку, указав, что минимальная ставка # 1 доллар player.make_bet() # Сдается две карты игроку for _ in range(2): player.take_card(card_deck.give_card()) # Сдается одна карта дилеру dealer.take_card(card_deck.give_card()) # Показываются карты дилера in_out.player_info(dealer, 'Диллера') # Показываются карты игрока in_out.player_info(player, 'Ваши') # Если у игрока блекджек (на руках две карты, количество очков - # 21), то задается соответствующая переменная, иначе берется карта if player.points != 21: player.make_move(card_deck) else: player_blackjack = True # Проверка наличия блекджека у диллера dealer.take_card(card_deck.give_card()) if dealer.points != 21: dealer.make_move(card_deck) else: dealer_blackjack = True # Если у пользователя на руках блекджек и у диллера блекджека нет, # то пользователь выигрывает 3 к 1 if player_blackjack and not dealer_blackjack: player.money += player.bet * 2.5 in_out.print_message( player, 'Вы выиграли {:} $\ \n'.format( round(player.bet * 1.5, 2))) continue if player.points > 21: in_out.print_message(player, 'Вы проиграли, сожалеем.\n') continue in_out.player_info(dealer, 'Диллера') if player.points < dealer.points and dealer.points <= 21: in_out.print_message(player, 'Вы проиграли, сожалеем.\n') elif player.points > dealer.points or dealer.points > 21: player.money += player.bet * 2.0 in_out.print_message( player, 'Вы выиграли {:} $\ \n'.format(round(player.bet, 2))) else: player.money += player.bet in_out.print_message(player, 'Вы сыграли в ничью\n') except KeyboardInterrupt: in_out.finish(player)
if not hand.burn_flag and not self.dealer.hand.burn_flag: # hand isn't burned, dealer isn't burned if hand.black_jack and not self.dealer.hand.black_jack: # winning scenarios hand.win_black(player) continue if hand.value > self.dealer.hand.value: hand.win(player) continue if self.dealer.hand.value == hand.value: # draw with dealer hand.tie(player) hand.win(player) continue print("End of Game!") deck = Deck() active_players = [] g1 = Gambler("Ben", deck) g2 = Gambler("Gil", deck) dealer = Dealer() win = GraphicGame(deck, dealer, [g1, g2]) win.geometry("1200x700") win.title('Black Jack') main = MainGame(win, [g1, g2]) thread = threading.Thread(target=main.start_game) # make loop terminate when the user exits the window thread.daemon = True thread.start() win.mainloop()
def __init__(self, num_shuffles=1): self.num_shuffles = num_shuffles self.dealer = Dealer(name='Dealer') self.player = Player(name='1') self.game_over = False
def setup(self, player, deck): self.player = [Player(), Dealer()] self.deck = deck