Привет! Вот примерчик простого блэкджека на питоне без библиотек:
Программный код:
import random
def deal_card():
cards = [2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11]
return random.choice(cards)
def calculate_score(cards):
if sum(cards) == 21 and len(cards) == 2:
return 0
if 11 in cards and sum(cards) > 21:
cards.remove(11)
cards.append(1)
return sum(cards)
def compare_scores(player_score, dealer_score):
if player_score == dealer_score:
return "Ничья!"
elif dealer_score == 0:
return "Проиграл! Дилер выбил блэкджек!"
elif player_score == 0:
return "Победа! Ты выбил блэкджек!"
elif player_score > 21:
return "Проиграл! Сам перекуп!"
elif dealer_score > 21:
return "Победа! Дилер перекуп!"
elif player_score > dealer_score:
return "Победа!"
else:
return "Проиграл!"
player_cards = []
dealer_cards = []
for _ in range(2):
player_cards.append(deal_card())
dealer_cards.append(deal_card())
player_score = calculate_score(player_cards)
dealer_score = calculate_score(dealer_cards)
game_over = False
while not game_over:
print(f"Твои карты: {player_cards}, текущий счет: {player_score}")
print(f"Карта дилера: {dealer_cards[0]}")
if player_score == 0 or dealer_score == 0 or player_score > 21:
game_over = True
else:
should_continue = input("Еще карту? Напиши 'y' или 'n': ")
if should_continue == 'y':
player_cards.append(deal_card())
player_score = calculate_score(player_cards)
else:
game_over = True
while dealer_score != 0 and dealer_score < 17:
dealer_cards.append(deal_card())
dealer_score = calculate_score(dealer_cards)
print(f"Твои карты: {player_cards}, итоговый счет: {player_score}")
print(f"Карты дилера: {dealer_cards}, итоговый счет дилера: {dealer_score}")
print(compare_scores(player_score, dealer_score))