Как остановить функцию if? (строка 24)

Как остановить функцию if? То-есть если условие выполняется,то программа завершает работу. И,пожалуйста,если не трудно оцените написанный код, я только учусь. Суть задания : Играют два игрока. Есть 10 палочек. Игроки по очереди берут от одной до трёх палочек. Играют до тех пор пока не закончатся палочки. Тот кто взял последним - тот проиграл.

palochki = int(10)
"""первый ход"""
player1 = print('Игрок 1: Уберите от 1 до 3 палочек: ')
hod1 =(int(input()))
result1 = print('Осталось палочек : ')
result2 = print(palochki - hod1)
palochki2= palochki - hod1

"""второй ход"""
player2 = print("Игрок 2 : Уберите от 1 до 3 палочек")
hod2 =(int(input()))
result3 = print('Осталось палочек : ')
result4 = print(palochki2 - hod2)
palochki3 = palochki2 - hod2
"""третий ход"""

player1 = print('Игрок 1: Уберите от 1 до 3 палочек: ')
hod3=(int(input()))
result5 = print('Осталось палочек :')
result6 = print(palochki3 - hod3)
palochki4 = palochki3 -hod3
"""четвёртый ход"""
player2 = print("Игрок 2 : Уберите от 1 до 3 палочек")
hod4=(int(input()))
if hod4 >= palochki4:
    print("Игрок 2 : Вы проиграли")
else:
    result7 = print("Осталось палочек :")
result8 = print(palochki4 - hod4)
palochki5 = palochki4 - hod4

"""пятый ход"""
player1 = print("Игрок 1 : Уберите от 1 до 3 палочек")
hod5=(int(input()))
if hod5 >= palochki5:
    print("Игрок 1 : Вы проиграли")
else:
    result9 = print("Осталось палочек :")
result10 = print(palochki5 - hod5)
palochki6 = palochki5 - hod5
"""шестой ход"""
player2 = print("Игрок 2 : Уберите от 1 до 3 палочек")
hod6=(int(input()))
if hod6 >= palochki5:
    print("Игрок 2 : Вы проиграли")
else:
    result11 = print("Осталось палочек :")
result12 = print(palochki6 - hod6)
palochki7 = palochki6 - hod6
"""седьмой ход"""

player1 = print("Игрок 1 : Уберите от 1 до 3 палочек")
hod7=(int(input()))
if hod7 >= palochki7:
    print("Игрок 1 : Вы проиграли")
else:
    result13 = print("Осталось палочек :")
result14 = print(palochki7 - hod7)
palochki8 = palochki7 - hod7

"""восьмой ход"""
player2 = print("Игрок 2 : Уберите от 1 до 3 палочек")
hod8=(int(input()))
if hod8 >= palochki8:
    print("Игрок 2 : Вы проиграли")
else:
    result15 = print("Осталось палочек :")
result16 = print(palochki8 - hod8)
palochki9 = palochki8 - hod8
"""девятый ход"""

player1 = print("Игрок 1 : Уберите от 1 до 3 палочек")
hod9=(int(input()))
if hod9 >= palochki9:
    print("Игрок 2 : Вы проиграли")
else:
    result17 = print("Осталось палочек :")
result18 = print(palochki9 - hod9)
palochki10 = palochki9 - hod9

"""десятый ход"""
player2 = print("Игрок 2 : Уберите от 1 до 3 палочек")
hod10=(int(input()))
if hod10 >= palochki10:
    print("Игрок 2 : Вы проиграли")
else:
    result19 = print("Осталось палочек :")
result20 = print(palochki10 - hod10)

Ответы (1 шт):

Автор решения: Edward Grachev

Не очень красивый код, много дубля кода. Но я думаю логика понятна. Не обязательно делать каждый ход отдельно. Можно запустить все в цикле while

palochki = 10

def count_chek(count: int) -> bool:
    if 0 < count and count <= 3:
        return True
    return False


while palochki > 0:
    # первый игрок
    player1_flag = True
    while player1_flag:
        player1 = print('Игрок 1: Уберите от 1 до 3 палочек: ')
        count_player1 = int(input())
        if count_chek(count_player1):
            palochki = palochki - count_player1
            if palochki <= 0:
                print("Игрок 1 проиграл")
                break
            else:
                result = print(f'Осталось палочек : {palochki}')
                player1_flag = False
            
    player2_flag = True
    while player2_flag:
        player2 = print('Игрок 2: Уберите от 1 до 3 палочек: ')
        count_player2 = int(input())
        if count_chek(count_player2):
            palochki = palochki - count_player1
            if palochki <= 0:
                print("Игрок 2 проиграл")
                break
            else:
                result = print(f'Осталось палочек : {palochki}')
                player2_flag = False
    

Вот метод решения через класс и остановка игры при вводе 0.

import sys


class Palochki:
    def __init__(self) -> None:
        self.palochki = 10
        self.player_hod = True
        self.player1_count = 0
        self.player2_count = 0

    def count_chek(self, count: int) -> bool:
        if 0 < count and count <= 3:
            return True
        if count == 0:
            print('Выход')
            sys.exit()
        return False
    
    def __player_hod(self, player_name: str) -> None:
        while True:
            print(f'{player_name}: Уберите от 1 до 3 палочек: ')
            count = int(input())
            if self.count_chek(count):
                self.palochki = self.palochki - count
                if self.palochki <= 0:
                    print(f"{player_name} проиграл")
                else:
                    print(f'Осталось палочек : {self.palochki}')
                return 
                    
    
    def start(self) -> None:
        while self.palochki > 0:
            self.__player_hod("Игрок 1")
            if self.palochki == 0:
                break
            self.__player_hod("Игрок 2")
        print('Выход')
        sys.exit()

Palochki().start()
→ Ссылка