Python 1. Написать программу, которая будет просить пользователя внести новый класс оружия и название самого оружия(всего 4). Класс оружия использовать как ключ, а название - как значение. Не вносить новый класс, если такой ключ уже есть. Вводить пользователь должен через запятую с пробелом, сначала класс, а потом название. После вывести весь словарь на экран. Пример ввода: Посох, Огненный посох 2. Дополнить предыдущую программу: просить пользователя также записать тип оружия, а потом спросить, сколько будет самих предметов и ввести их. Класс оружия все также будет записан через запятую, а все орудия должны записываться в массив. Пример ввода: Посох, 2 Огненный посох , Деревянный посох монаха 3. Дополнить предыдущую программу. Считывать также класс орудия, количество орудий, а потом уже сами орудия с характеристиками. Орудия теперь записывать как отдельные словари, а их характеристики как массивы. Характеристики 3: урон с руки, стихия, пробивание брони/сопротивления(в %) Пример ввода: Посох, 2 Огненный посох : 1488, 42, 2 Деревянный посох монаха: 322, 7, 0 4. Закончить программу тем, что предложить вывести любой класс орудия на экран, удалить или изменить состав текущего класса, изменить характеристики оружия и т.д. ИСПОЛЬЗОВАТЬ ТОЛЬКО САМЫЕ ОСНОВНЫЕ КОММАНДЫ.
Ответы на вопрос:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
class Weapon:
def __init__(self, name, damage, range):
self.name = name
self.damage = damage
self.range = range
def hit(self, actor, target):
if not target.is_alive:
print('Враг уже повержен')
return
if actor.pos_x + self.range < target.pos_x or \
actor.pos_y + self.range < target.pos_y:
print(f'Враг слишком далеко для оружия '
f'{self.name}')
return
target.hp -= self.damage
print(f'Врагу нанесен урон оружием {self.name}'
f'в размере {self.damage}')
def print_Weapon(self):
return self.name
class BaseCharacter:
def __init__(self, pos_x, pos_y, hp):
self.pos_x = pos_x
self.pos_y = pos_y
self.hp = hp
def move(self, d_x, d_y):
self.pos_x = self.pos_x + d_x
self.pos_y = self.pos_y + d_y
def is_alive(self):
if self.hp <= 0:
return False
else:
return True
def get_damage(self, amount):
self.hp = self.hp - amount
def get_coords(self):
return (self.pos_x, self.pos_y)
class BaseEnemy(BaseCharacter):
def __init__(self, pos_x, pos_y, weapon, hp):
super().__init__(pos_x, pos_y, hp)
self.weapon = Weapon
def hit(self, target):
if not target == MainHero:
print('Могу ударить только главного героя')
return
else:
self.weapon.hit(self, target)
def print_Enemy(self):
return f'Враг на позиции{self.pos_x, self.pos_y} с \
оружием {self.weapon}'
class MainHero(BaseCharacter):
def __init__(self, pos_x, pos_y, name, hp):
super().__init__(pos_x, pos_y, hp)
self.name = name
self.invent = []
self.weapon = '12'
def add_weapon(self, weapon):
self.weapon = weapon
self.invent.append(weapon)
print(f'Подобрал {weapon}')
if len(self.invent) == 1:
MainHero.weapon = weapon
def hit(self, target):
if MainHero.weapon == 0: # AttributeError: type object 'MainHero' has no attribute 'weapon'
# я ведь прописал в инните self.weapon = weapon, что не так? Думаю дело в том что этот weapon в инните никак не связан классом Weapon, тогда как это реализовать?
print('Я безоружен')
return
if target != BaseEnemy:
print('Могу ударить только врага')
return
target.hp -= MainHero.weapon.hit
def next_weapon(self):
if len(self.invent) == 0:
print('Я безоружен')
return
if len(self.invent) == 1:
print('У меня только одно оружие')
return
# не понимаю как реализовать смену оружия,создал для этого invent, чтобы работать с индексами, но не знаю как.
в виде несжатого файла размером 1,5 Мб. Какое количество информации было использовано для кодирования цвета пикселя? Каково максимально возможное число цветов в палитре, соответствующей такой глубине цвета?
ответ
Дано
К = 1024 х 512
I = 1,5 Мб
Найти
i — ?
N — ?
Решение
I = K · i
i = I/K
Переведем объем информации I из Мб в биты
1,5 Мб = 1,5 · 1024 · 1024 · 8 бит
i = (1,5 · 1024 · 1024 · 8) / (1024 · 512) = 24 бит
N = 2i
N = 224 = 16 777 216 цветов
i = 24 бит
N = 16 777 216 цветов
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Azaleika08.06.2020 20:50
-
Labzunova26.06.2020 13:55
-
oksanademyanov28.10.2020 11:17
-
belovaan80p073pt15.11.2020 05:44
-
Аринкаlove700218.10.2021 13:08
-
ЖенушкаV17.09.2021 20:52
-
NazSha29.10.2021 05:10
-
Erikalallala19.01.2021 19:49
-
llerochka129.06.2021 23:27
-
kustsireni29.10.2022 11:14
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.