Python: Игра «Угадай число» версии 2.0

Если вы по какой-то причине забыли/потеряли/стёрли, сожгли/утопили код своей программы из класса, то тут вы можете взять мой код.

Но писать то же самое ещё раз мне было скучно и я немного улучшил код программы и добавил туда кое-что новое. Я постарался новые для вас элементы пояснить в сопровождающих коментариях.

Вот код:

import random
import subprocess
import platform

# назначаю цвета для надписей
RESET = "\033[0m"      # Сброс цвета
RED = "\033[91m"       # Красный
GREEN = "\033[92m"     # Зеленый
YELLOW = "\033[93m"    # Желтый


# глобальные настройки игры
_from = 0  # от числа
_till = 10 # до числа
_tries = 20 # количество попыток я вынесу в настройки для удобства изменения
_secret = 0 # я сделал _secret глабольной переменной (потом объясню, кому интересно)

def ClearScreen():
    command = 'cls' if platform.system() == 'Windows' else 'clear'
    subprocess.run(command, shell=True)

# функция для опеределения окончания слова ПОПЫТКА, ПОПЫТКИ, ПОПЫТОК в зависимости от числа
def GetEnding(number):
    # проверяю исключения: 11 попытОК, хотя 1 - попытка.
    if (number >= 11 and number <= 14):
        return "ок"
    
    # если не исключение проверяем по последней цифер в числе
    lastDigit = number % 10    
    if(lastDigit == 1):
        return "ка"    
    elif (lastDigit >= 2 and lastDigit <= 4):
        return "ки"
    else:
        return "ок"

while True:
    # вывод меню
    ClearScreen()
    print("="*57)    
    print("||" + " "*14 + f"{GREEN}Угадай число! Версия 2.0{RESET}" + " "*14 + "||") # Включем зелёный, пишем, сбрасываем на обычный
    print("="*57)
    print("Выберите режим игры:")
    print("-"*57)
    print("1 - Одиночная игра")
    print("2 - Парная игра")
    print("3 - Выход из игры")
    print("-"*57)

    # выбор режима игры
    menuChoice = input("Выберите вариант меню: ")

    # т.к. режимы игры отличаются только методом загадывания, то я не буду повторять код, 
    # а объединю два методоа игры в один блок кода, но буду выбирать метод загадывания через if
    
    if(menuChoice == "1" or menuChoice == "2"):
        ClearScreen()

        if(menuChoice == "1"):
            _secret = random.randint(_from, _till)
        else:
            while True:
                _secret = int(input("Игрок 1, Загадывай число от 0 до 10:"))
                if(_secret >= _from and _secret <= _till):                
                    break
                else:
                    print(f"Ты загадал неверное число! Оно лежит вне диапазона от {_from} до {_till}! Перезагадай!")
            

        lives = _tries
        ClearScreen()
        print("Число загадано! Отгадывайте!")
        print(f"{GREEN}У вас осталось {lives} попыт{GetEnding(lives)} из {_tries}!{RESET}")
        
        for i in range(1,lives+1):
            ans = int(input(f"Введите число от {_from} до {_till}: "))
            if(ans == _secret):
                print(f"{GREEN}Вы угадали!!! Молодец!{RESET}")
                break
            else:
                lives -= 1
                if(lives > 0):          
                    # Выбираем цвет надписи про попытки: меньше половины - жёлтый, меньше четверти - красный          
                    if lives < _tries/4:
                        COLOR = RED
                    elif lives < _tries/2:
                        COLOR = YELLOW                    
                    else:
                        COLOR = RESET

                    print(f"{COLOR}Неверно! У вас осталось {lives} попыт{GetEnding(lives)} из {_tries}{RESET}")
                else:
                    print(f"{RED}Вы проиграли! Аха-ха-ха-ха! \r\nЗагаданное число было: {_secret}{RESET}")
        
        rep = input("Сыграем ещё раз? Введите y или n: ")
        if(rep == "n"):
            break
    elif menuChoice == "3":
        print("Спасибо за игру, приходи ещё! Пока!")
        break

            



Также код можно скачать сразу файлом(zip-архив), если у вас с форматированием возникли проблемы: