python Напишите класс GTA, которая имитирует поведение игры GTA. Там есть много методов, но вы должны сделать основные методы как ходить, атаковать, получать урон и делать деньги. Так конструктор принимает персонажи из игры GTA V (Майкл, Тревор, Франклин), то есть если вы ввели другое имя, то вам он должен выводить "Нету такого персонажа". И также создайте приватные атрибуты класса (__health = 100, __money = 100, __satiety = 100, __walk = 0) Затем создайте метод для того чтоб он возвращал все атрибуты. Создайте метод walk для ходьбы и чтоб когда вызывали метод, в __walk добавлялось 1 единица значения. Потом создайте метод attack, которая принимает единицу урона. Если урон между 1 и 20, то он должен выводить "Ваш персонаж атаковал и сделал урон {ваш урон}". Иначе выводит "Вы не нанесли урон". Затм создайте метод для получения урона(случайное значение модуль random). И также если ваше здоровеье закончилась то он должен списать с вашего баланса 10 долларов и также пополнить ваш здоровье на 100 единиц. Сделайте последний метод для заработка денег. То есть когда мы вызываем метод то он должен добавлять 100 долларов в наш баланс. Теперь создайте экземпляр класса и вызовите все методы которые у нас присутствуют.
Ответы
Ответ:
import random
class GTA:
def __init__(self, character):
self.__valid_characters = ["Майкл", "Тревор", "Франклин"]
if character in self.__valid_characters:
self.__character = character
self.__health = 100
self.__money = 100
self.__satiety = 100
self.__walk = 0
else:
print("Нету такого персонажа")
def get_attributes(self):
return {
"health": self.__health,
"money": self.__money,
"satiety": self.__satiety,
"walk": self.__walk
}
def walk(self):
self.__walk += 1
def attack(self, damage):
if 1 <= damage <= 20:
print(f"Ваш персонаж атаковал и сделал урон {damage}")
else:
print("Вы не нанесли урон")
def take_damage(self):
damage = random.randint(1, 30)
self.__health -= damage
if self.__health <= 0:
self.__money -= 10
self.__health += 100
def earn_money(self):
self.__money += 100
# Создание экземпляра класса и вызов методов
gta_character = GTA("Майкл")
print(gta_character.get_attributes())
gta_character.walk()
print(gta_character.get_attributes())
gta_character.attack(15)
gta_character.take_damage()
print(gta_character.get_attributes())
gta_character.earn_money()
print(gta_character.get_attributes())
Конечно, вот реализация класса GTA с описанными вами методами:
python
import random
class GTA:
def __init__(self, character):
self.__valid_characters = ["Майкл", "Тревор", "Франклин"]
if character in self.__valid_characters:
self.__character = character
self.__health = 100
self.__money = 100
self.__satiety = 100
self.__walk = 0
else:
print("Нету такого персонажа")
def get_attributes(self):
return {
"health": self.__health,
"money": self.__money,
"satiety": self.__satiety,
"walk": self.__walk
}
def walk(self):
self.__walk += 1
def attack(self, damage):
if 1 <= damage <= 20:
print(f"Ваш персонаж атаковал и сделал урон {damage}")
else:
print("Вы не нанесли урон")
def take_damage(self):
damage = random.randint(1, 30)
self.__health -= damage
if self.__health <= 0:
self.__money -= 10
self.__health += 100
def earn_money(self):
self.__money += 100
# Создание экземпляра класса и вызов методов
gta_character = GTA("Майкл")
print(gta_character.get_attributes())
gta_character.walk()
print(gta_character.get_attributes())
gta_character.attack(15)
gta_character.take_damage()
print(gta_character.get_attributes())
gta_character.earn_money()
print(gta_character.get_attributes())
Обратите внимание, что я добавил обработку случая, когда здоровье упадет до 0 и нужно списать деньги и восстановить здоровье. Вы можете создать экземпляр класса для разных персонажей и вызвать соответствующие методы для каждого из них.