4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
card = random.choice(cards)
return card
def calculate_score(cards):
if sum(cards) == 21 and len(cards) ==2:
return 0
Делаю игру Блэк Джек по примеру.
Если 21 это выигрыш, то почему return 0(False)? Должен же быть return 1(True)?
Вопрос к автору кода, видимо
Есть предположения?)
А там других условий нету
Покажи полный код. По этому не понятно, что происходит
import random def deal_card(): cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10] card = random.choice(cards) return card def calculate_score(cards): """Take a list of cards und return the score calculated from the cards """ if sum(cards) == 21 and len(cards) ==2: return 0 # Return True (1) and False (0) and can be checked with a conditional statement. if 11 in cards and sum(cards) > 21: cards.remove(11) cards.append(1) return sum(cards) def compare(user_score, computer_score): if user_score == computer_score: return "Draw" elif computer_score ==0: return "Lose, opponent has Blackjack" elif user_score == 0: return "Win with a Blackjack" elif user_score > 21: return "You went over. You lose" elif computer_score >21: return "Opponent went over. You win" elif user_score > computer_score: return "You win" else: return "You lose" def play_game(): user_cards = [] computer_cards = [] is_game_over = False for _ in range(2): #for_ in- we don't care about the iterator value, just that it should run some specific number of times user_cards.append(deal_card()) computer_cards.append(deal_card()) while not is_game_over: user_score = calculate_score(user_cards) computer_score = calculate_score(computer_cards) print(f"Your cards: {user_cards}, current score: {user_score}") print(f"Computer's first card: {computer_cards[0]}") if user_score == 0 or computer_score == 0 or user_score >21: is_game_over = True else: user_should_deal = input("Type 'y' to get another card, type 'n' to pass: ") if user_should_deal == "y": user_cards.append(deal_card()) else: is_game_over = True while computer_score != 0 and computer_score < 17: computer_cards.append(deal_card()) computer_score = calculate_score(computer_cards) print(f" Your final hand: {user_cards}, final score:{user_score}") print(f"Computer's final hand: {computer_cards}, final score: {computer_score}") print(compare(user_score,computer_score)) while input("Do you want to play a game of Blackjack? Type 'y' or 'n': ") == "y": play_game()
Залей на pastebin, пожалуйста
https://pastebin.com/9z5zzKfq
Неплохо бы правила приложить
Если сумма 21 то выигрыш
Ты откуда код взял?
Интернет
Ну отлично, мы должны угадать теперь правила игры по коду, который может быть с ошибками?
Правила простые и я думаю все знают эту игру.
В Википедии есть такая оговорка в правилах. Видимо она и проверяется в каком-то варианте. Но так как ты правила игры, которую программируешь, не знаешь, то смысла обсуждать не вижу. Код из интернета может реализовывать любой из миллион вариаций правил
Там 0, потому что идет сравнение с 0
Мне кажется это ты не знаешь, если спрашиваешь, что за игра блекджэк
Я не спрашивал что за игра. Я спрашивал точную формулировку правил. Компьютер работает по четким правилам, это тебе не футбол во дворе гонять, когда гол засчитывается из соображений чей мяч и кто кому воды вынес.
выигрывает мать которая быстрее скинет мяч
Ну если ты знал эту игру, ты бы не спрашивал правила.
Даже во дворе знают эту игру и девочки тоже
Вот только в каждом дворе играют немного по своему. Я буквально тебе только что показал, что в одном из вариантов правил есть оговорка, которую ты не учитывал в своих рассуждениях
речь была про том, что в таких ситуациях правила могут меняться в зависимости от подкованности игроков и приложить к коду правила, по которым он работает не самая плохая идея. ведь например те кто плохо знают правила могут ожидать от кода чего-то другого
Я выше написал, что код правильный и работает корректно.
Да не только подкованности. Есть разные варианты игры, даже среди популярных
главное верить в этом
В этой игре нет других правил
опять про мать, успокойся женщина
главное верить в это
Ты видимо в моем дворе не был
куда от вас сбежать то, кошмар!
Ты можешь очень долго спорить и игнорировать мысль, которую я пытаюсь донести (мысль о том, что точные формулировки важны). Это конечно же поможет тебе в освоении программирования (нет)
Обсуждают сегодня