Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Лучшие практики для создания блэкджека на питоне

  1. Лучшие практики для создания блэкджека на питоне

    Привет всем! Решил замутить проект по написанию блэкджека на питоне! Хочу на чистом питончике, без всяких там библиотек для игр. Посоветуйте, с чего начать, какие фишки лучше заюзать? Если у кого-то есть примеры кода или ссылки на годные туторы, буду благодарен. Плюс интересно, как сделать ИИ, который будет рубится против игрока. Кароче, делитесь опытом и мыслями, братва!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Вот примерчик простого блэкджека на питоне без библиотек:
    Программный код:
    import random

    def deal_card
    ():
    cards = [234567891010101011]
    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_scoredealer_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 == or dealer_score == 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 != 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_scoredealer_score)) 

  4. Цитата Сообщение от EarthShaker
    Привет! Вот примерчик простого блэкджека на питоне без библиотек:
    Программный код:
    import random

    def deal_card
    ():
    cards = [234567891010101011]
    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_scoredealer_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 == or dealer_score == 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 != 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_scoredealer_score)) 
    Эх, чувак, пропустил проверку ввода от пользователя. А так код зачётный, бери на заметку!

  5. Для ИИ можно сделать простой алгоритм: если у дилера сумма меньше 17, он берет карту, иначе - стопится. Нечто вроде:
    Программный код:
    while dealer_score 17:
    dealer_cards.append(deal_card())
    dealer_score calculate_score(dealer_cards
    Такой ИИ несложный, но уже будет против кого рубиться.

  6. Цитата Сообщение от Валерий Кравцов
    Для ИИ можно сделать простой алгоритм: если у дилера сумма меньше 17, он берет карту, иначе - стопится. Нечто вроде:
    Программный код:
    while dealer_score 17:
    dealer_cards.append(deal_card())
    dealer_score calculate_score(dealer_cards
    Такой ИИ несложный, но уже будет против кого рубиться.
    Согласен, это основа для ИИ. Можно добавить что-то посложнее, типа счёта карт или риск-менеджмента.

  7. Чтобы начать, реально, просто напиши основу, а потом уже добавляй фичи. Вот пример клиент-сервака для мультиплеера можно заюзать.

  8. Цитата Сообщение от BlackHoleMarauder
    Чтобы начать, реально, просто напиши основу, а потом уже добавляй фичи. Вот пример клиент-сервака для мультиплеера можно заюзать.
    Это идея! С мультиплеером ещё повеселее будет, можно с друзьями гонять.

  9. Пару советов:
    - Делай частые коммиты в гите, чтобы не потерять работу.
    - Тестируй на каждом шагу, блэкджека легко сломать.
    - Чекни гайды на YouTube или GitHub.
    Удачи!

  10. Цитата Сообщение от Александр Павлович
    Пару советов:
    - Делай частые коммиты в гите, чтобы не потерять работу.
    - Тестируй на каждом шагу, блэкджека легко сломать.
    - Чекни гайды на YouTube или GitHub.
    Удачи!
    Советы по делу, респект! Сам так всегда делаю. Git - мастхев, тесты - рулят.

Страница 1 из 2 12 ПоследняяПоследняя