
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 и нужно списать деньги и восстановить здоровье. Вы можете создать экземпляр класса для разных персонажей и вызвать соответствующие методы для каждого из них.



Вот пример класса GTA
, который соответствует вашим требованиям:
pythonimport random
class GTA:
def __init__(self, character):
self.__characters = ['Майкл', 'Тревор', 'Франклин']
if character in self.__characters:
self.__character = character
else:
print("Нет такого персонажа")
return
self.__health = 100
self.__money = 100
self.__satiety = 100
self.__walk = 0
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
print("Ваш персонаж был избит, списано 10 долларов, здоровье восстановлено.")
def earn_money(self):
self.__money += 100
print("Вы заработали 100 долларов!")
# Создаем экземпляр класса GTA
gta_character = GTA('Майкл')
# Вызываем методы
print("Атрибуты персонажа:", gta_character.get_attributes())
gta_character.walk()
gta_character.attack(15)
gta_character.take_damage()
gta_character.earn_money()
print("Атрибуты персонажа после всех действий:", gta_character.get_attributes())
Обратите внимание, что мы создали экземпляр класса с персонажем "Майкл" и вызвали все указанные методы для этого персонажа. Вы можете изменить персонажа, передав другое имя в конструктор, чтобы проверить работу для других персонажей.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili