Цикл заканчивается в начале третьей итерацииPython

Программы на Python
Anonymous
Цикл заканчивается в начале третьей итерации

Сообщение Anonymous »

Привет всем, кто это читает! Сейчас я занимаюсь отладкой своего кода и столкнулся со странной ошибкой.
Я использую для проекта два основных файла: один с именем logic.py и другой с именем card.py. Весь игровой цикл зависит от истинности двух переменных: match_going и PlayerTurn. Я гарантирую, что для этих значений установлено значение True в приглашении продолжить воспроизведение, однако в третьем цикле программы он запускает startMatch(), а затем завершает программу.
Предполагаемый результат см. ниже, у меня есть код на моем GitHub здесь, в папке bin. А также ссылку на корзину здесь --> https://paste.pythondiscord.com/7RKQ. Сегодня вечером я могу опубликовать видео о том, что говорит отладчик. Ниже я разместил основные части кода, вызывающие проблемы, и я полностью знаю, что код моего игрового цикла действительно неряшлив. Я хочу знать, почему мой код не возвращается в цикл while

Код: Выделить всё

#This code is ran before the code above
while match_going and PlayerTurn:
# Grab input inside the loop so it asks every time
player_input = input("Stand or Hit:\n").lower()

if player_input == "hit":
deck.draw_card(Player_Hand,"Player")
player_score = deck.ScoreCard(Player_Hand)
print("Player's Hand Score Currently:\n", player_score)

# Check if they busted
if player_score > 21:
print("Past 21! You busted...")
PlayerTurn = False
match_going = False

elif player_input == "stand":
PlayerTurn = False
print("**Dealer's Turn**")
deck.draw_card(Dealer_Hand,"Dealer")
dealer_score = deck.ScoreCard(Dealer_Hand)
# Dealer must hit until they beat 16 or land on 16
while dealer_score < 16:
deck.draw_card(Dealer_Hand,"Dealer")
dealer_score = deck.ScoreCard(Dealer_Hand)
if dealer_score == 16 and player_score > dealer_score:
print("You win!")
match_going = endMatch()
WinCounter += 1
if dealer_score == 16 and dealer_score > player_score:
print("Dealer Wins!")
match_going = endMatch()
if dealer_score >= player_score and dealer_score

Вернуться в «Python»