Как остановить функцию 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()