улучши код import random
import sys
from colorama import init, Fore, Style

# Инициализация colorama
init(autoreset=True)

class TextAdventureGame:
    def __init__(self):
        # Начальный баланс и инвентарь игрока
        self.balance = 250
        self.inventory = {'bananas': 0, 'first_aid_kits': 0, 'revolvers': 0}
        self.actions = []
        self.current_room = 'kitchen'
        self.rooms = {
            'living_room': self.living_room,
            'outside': self.outside,
            'kitchen': self.kitchen
        }
        self.start_game()

    def start_game(self):
        print(Fore.GREEN + "Добро пожаловать в текстовую игру!")
        self.navigate_to_room()

    def navigate_to_room(self):
        room_action = self.rooms.get(self.current_room)
        if room_action:
            room_action()
        else:
            print(Fore.RED + f"Комната '{self.current_room}' не существует.")
            self.end_game("Игра завершена из-за ошибки.", "ERROR")

    def get_choice(self, prompt, valid_choices):
        while True:
            try:
                choice = int(input(Fore.BLUE + prompt + Style.RESET_ALL))
                if choice in valid_choices:
                    return choice
                else:
                    print(Fore.RED + "Неверный выбор, попробуйте снова.")
            except ValueError:
                print(Fore.RED + "Пожалуйста, введите число.")

    def living_room(self):
        while True:
            choice = self.get_choice(
                "Вы находитесь в гостиной.\n"
                "1. Умыться\n"
                "2. Покушать\n"
                "3. Спать\n"
                "4. Выйти на улицу\n"
                "Ответ: ", [1, 2, 3, 4]
            )
            if choice == 1:
                self.wash_face()
            elif choice == 2:
                self.eat()
            elif choice == 3:
                print(Fore.BLUE + "Вы спите...")
            elif choice == 4:
                self.current_room = 'outside'
                self.navigate_to_room()
                break

    def outside(self):
        while True:
            choice = self.get_choice(
                "Вы на улице.\n"
                "1. Пойти в парк\n"
                "2. Вернуться домой\n"
                "Ответ: ", [1, 2]
            )
            if choice == 1:
                self.visit_park()
            elif choice == 2:
                self.current_room = 'living_room'
                self.navigate_to_room()
                break

    def visit_park(self):
        print(Fore.GREEN + "Вы находитесь в парке.")
        if random.random() < 0.5:  # 50% шанс найти аптечку
            print(Fore.CYAN + "Вы нашли аптечку!")
            self.inventory['first_aid_kits'] += 1
        else:
            print(Fore.BLUE + "Ничего интересного не нашли.")

    def wash_face(self):
        if 'washed_face' in self.actions:
            print(Fore.BLUE + "Вы уже умылись.")
        else:
            self.actions.append('washed_face')
            if random.random() < 0.4:  # 40% шанс найти банан
                print(Fore.CYAN + "Вы нашли банан!")
                self.inventory['bananas'] += 1
            else:
                print(Fore.BLUE + "Вы умылись.")

    def eat(self):
        if random.random() < 0.1:  # 10% шанс найти пистолет
            print(Fore.RED + "Вы нашли пистолет!")
            self.inventory['revolvers'] += 1
        self.current_room = 'kitchen'
        self.navigate_to_room()

    def kitchen(self):
        while True:
            choice = self.get_choice(
                "Вы находитесь на кухне.\n"
                "1. Съесть банан\n"
                "2. Проверить инвентарь\n"
                "3. Вернуться в гостиную\n"
                "Ответ: ", [1, 2, 3]
            )
            if choice == 1:
                self.eat_banana()
            elif choice == 2:
                self.check_inventory()
            elif choice == 3:
                self.current_room = 'living_room'
                self.navigate_to_room()
                break

    def eat_banana(self):
        if self.inventory['bananas'] > 0:
            self.inventory['bananas'] -= 1
            if random.random() < 0.65:  # 65% шанс умереть от удушья
                print(Fore.RED + "Вы умерли от удушья от банана.")
                self.end_game("Игра окончена. Вы проиграли.", "LOSE")
            else:
                print(Fore.BLUE + "Вы съели банан.")
        else:
            print(Fore.BLUE + "У вас нет бананов.")

    def check_inventory(self):
        print(Fore.BLUE + "Ваш инвентарь:")
        for item, quantity in self.inventory.items():
            print(f"{item}: {quantity}")

    def end_game(self, message, result):
        print(Fore.YELLOW + f"{message} Результат: {result}")
        sys.exit()

if __name__ == "__main__":
    try:
        TextAdventureGame()
    except KeyboardInterrupt:
        print(Fore.YELLOW + "\nИгра прервана пользователем.")
        sys.exit()