/
linditix
/
Python_Django_Learn
Обзор
Документация
Войти
/
linditix
/
Python_Django_Learn
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
OOP.py
173 строки
6 KB
lind
priv
04 дек 2024, 12:44
04 дек 2024, 12:44
2b846ca
Код
Авторство
О чём код?
import random class Tamagotchi: def __init__(self): self.money = 0 self.health = 100 self.happiness = 100 self.sleep = 100 self.cleanliness = 100 def exit_game(self) -> bool: print(f'Вы вышли из игры. У вас {self.money} монет.') return True def show_info(self) -> None: print(f'Кол-во денег: {self.money}') print(f'Кол-во жизней: {self.health}') print(f'Кол-во счастья: {self.happiness}') print(f'Кол-во сна: {self.sleep}') print(f'Кол-во чистоты: {self.cleanliness}') def play(self) -> None: while self.health > 0: self.show_info() action = input('Выберите действие (Полечиться, Повеселиться, Поспать, Помыться, Игра, Ждать, Выход): ') try: if not action: print('Ошибка при вводе. Введите корректное действие.') continue if action == 'Полечиться': self.add_health() print(f'Вы съездили в больницу, ваше здоровье теперь: {self.health}') elif action == 'Повеселиться': self.add_happiness() print(f'Вы прыгнули в лужу, ваше счастье теперь: {self.happiness}') elif action == 'Поспать': self.add_sleep() print(f'Вы провели во сне 8 полных часов, ваш сон теперь: {self.sleep}') elif action == 'Помыться': self.add_cleanliness() print(f'Вы сходили в душ, ваша чистота теперь: {self.cleanliness}') elif action == 'Игра': self.play_game() elif action == 'Ждать': print(f'Ждём-с') elif action == 'Выход': if self.exit_game(): break else: print('Не распознанное действие.') continue self.wait() except ValueError: print('Произошла ошибка!') pass def wait(self) -> None: self.health -= 1 self.happiness -= 1 self.sleep -= 1 self.cleanliness -= 1 def add_health(self) -> None: if self.money >= 2: if self.health <= 80: self.health += 20 else: self.health = 100 else: print('У вас недостаточно денег') def add_happiness(self) -> None: if self.money >= 2: if self.happiness <= 80: self.happiness += 20 else: self.happiness = 100 else: print('У вас недостаточно денег') def add_sleep(self) -> None: if self.money >= 2: if self.sleep <= 60: self.sleep += 40 else: self.sleep = 100 else: print('У вас недостаточно денег') def add_cleanliness(self) -> None: if self.money >= 2: if self.cleanliness <= 60: self.cleanliness += 40 else: self.cleanliness = 100 else: print('У вас недостаточно денег') def play_game(self): game = GuessNumber() game.play() self.money += game.win_money class Game: def __init__(self, name, rules): self.name = name self.rules = rules self.win_money = 0 def show_name(self): print(f'Вы зашли в игру {self.name}') def show_rules(self): print(self.rules) def play(self): raise NotImplementedError() def exit_game(self): print(f'Вы вышли из {self.name}') return True class GuessNumber(Game): def __init__(self): super().__init__( name='Угадай число', rules='Угадайте число от 1 до 100 за 10 попыток.' ) self.secret_number = 0 self.max_attemps = 10 self.attemps = 0 self.win_money = 10 # Добавлено при выигрыше def play(self): self.secret_number = random.randint(1, 100) self.attemps = 0 self.show_name() self.show_rules() while self.max_attemps > self.attemps: try: guess = input('Введите число от 1 до 100 ("exit" для выхода): ') if guess == 'exit': return self.exit_game() guess = int(guess) if guess == self.secret_number: print('Молодец, вы угадали число!') self.win_money = 10 return self.exit_game() elif guess > self.secret_number: print('Ваше число больше заданного') elif guess < self.secret_number: print('Ваше число меньше заданного') else: print('Ошибка') return self.exit_game() self.attemps += 1 print(f'Осталось попыток {self.max_attemps - self.attemps}') except ValueError: print('Ошибка, введите правильное число') print(f'Вы проиграли, загаданное число было {self.secret_number}') game = Tamagotchi() game.play()