/
fgtrwt
/
Python_Django_Learn
Обзор
Документация
Войти
/
fgtrwt
/
Python_Django_Learn
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
oop.py
205 строк
7 KB
fgtrwt
upload files
19 авг 2025, 09:15
19 авг 2025, 09:15
0cdaa12
Код
Авторство
О чём код?
import random import time class Game: def __init__(self, name, rules): self.name = name self.rules = rules 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 попыток. За победу вы получите 10 монет.' ) self.secret_number = 0 self.max_attemps = 10 self.attemps = 0 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 (или 'выход' для выхода): ") if guess.lower() == 'выход': return self.exit_game(), 0 guess = int(guess) if guess == self.secret_number: print("Вы угадали число!") return self.exit_game(), 10 elif guess > self.secret_number: print('Ваше число больше загаданного') elif guess < self.secret_number: print('Ваше число меньше загаданного') self.attemps += 1 print(f'Осталось попыток {self.max_attemps - self.attemps}') except ValueError: print('Ошибка, введите правильное число') print(f"Вы проиграли, загаданное число было {self.secret_number}") return self.exit_game(), 0 class Tamagotchi: def __init__(self): self.money = 0 self.health = 100 self.happiness = 100 self.sleep = 100 self.cleanliness = 100 self.start_time = time.time() self.games = { 'Угадай число': GuessNumber() } def exit_game(self) -> bool: play_time = int(time.time() - self.start_time) print(f'\n=== Игра окончена ===') print(f'Вы прожили: {play_time} секунд') print(f'Заработано денег: {self.money}') print(f'Финальные показатели:') self.show_info() return True def show_info(self) -> None: print('\n=== Текущее состояние ===') print(f'Деньги: {self.money}') print(f'Здоровье: {self.health}/100') print(f'Счастье: {self.happiness}/100') print(f'Сон: {self.sleep}/100') print(f'Чистота: {self.cleanliness}/100') def play_mini_game(self): print('\nДоступные мини-игры:') for i, game_name in enumerate(self.games.keys(), 1): print(f'{i}. {game_name}') choice = input('Выберите игру (или "отмена" для возврата): ') if choice.lower() == 'отмена': return try: game_name = list(self.games.keys())[int(choice) - 1] game = self.games[game_name] result, earned = game.play() if earned > 0: self.money += earned print(f'Вы заработали {earned} монет!') except (ValueError, IndexError): print('Неверный выбор игры') def play(self) -> None: print('=== Тамагочи! ===') print('Доступные действия:') print('- Полечиться (5 монет)') print('- Развлечься (5 монет)') print('- Поспать (3 монеты)') print('- Помыться (4 монеты)') print('- Работать (заработать деньги)') print('- Ждать (ничего не делать)') print('- Выход (завершить игру)') while self.health > 0: self.show_info() action = input('\nДействие:').strip() try: if not action: print('Ошибка при вводе. Введите корректное действие.') continue if action == 'Полечиться': self.add_health() elif action == 'Развлечься': self.add_happiness() elif action == 'Поспать': self.add_sleep() elif action == 'Помыться': self.add_cleanliness() elif action == 'Работать': self.play_mini_game() elif action == 'Ждать': print('Проходит время...') elif action == 'Выход': if self.exit_game(): return else: print('Не распознанное действие') continue self.wait() except ValueError as e: print(f'Произошла ошибка: {e}') def wait(self) -> None: self.health = max(0, self.health - 2) self.happiness = max(0, self.happiness - 3) self.sleep = max(0, self.sleep - 4) self.cleanliness = max(0, self.cleanliness - 3) if self.health <= 0: print('\n=== Тамагочи умер! ===') self.exit_game() exit() def add_health(self) -> None: if self.money >= 5: self.money -= 5 self.health = min(100, self.health + 20) print(f'Вы полечились, здоровье: {self.health}') else: print('Недостаточно денег (нужно 5 монет)') def add_happiness(self) -> None: if self.money >= 5: self.money -= 5 self.happiness = min(100, self.happiness + 25) print(f'Вы развлеклись, счастье: {self.happiness}') else: print('Недостаточно денег (нужно 5 монет)') def add_sleep(self) -> None: if self.money >= 3: self.money -= 3 self.sleep = min(100, self.sleep + 30) print(f'Вы поспали, уровень сна: {self.sleep}') else: print('Недостаточно денег (нужно 3 монеты)') def add_cleanliness(self) -> None: if self.money >= 4: self.money -= 4 self.cleanliness = min(100, self.cleanliness + 40) print(f'Вы помылись, чистота: {self.cleanliness}') else: print('Недостаточно денег (нужно 4 монеты)') if __name__ == "__main__": game = Tamagotchi() game.play()