Есть ответ 👍

Python 1. Написать программу, которая будет просить пользователя внести новый класс оружия и название самого оружия(всего 4). Класс оружия использовать как ключ, а название - как значение. Не вносить новый класс, если такой ключ уже есть. Вводить пользователь должен через запятую с пробелом, сначала класс, а потом название. После вывести весь словарь на экран. Пример ввода: Посох, Огненный посох 2. Дополнить предыдущую программу: просить пользователя также записать тип оружия, а потом спросить, сколько будет самих предметов и ввести их. Класс оружия все также будет записан через запятую, а все орудия должны записываться в массив. Пример ввода: Посох, 2 Огненный посох , Деревянный посох монаха 3. Дополнить предыдущую программу. Считывать также класс орудия, количество орудий, а потом уже сами орудия с характеристиками. Орудия теперь записывать как отдельные словари, а их характеристики как массивы. Характеристики 3: урон с руки, стихия, пробивание брони/сопротивления(в %) Пример ввода: Посох, 2 Огненный посох : 1488, 42, 2 Деревянный посох монаха: 322, 7, 0 4. Закончить программу тем, что предложить вывести любой класс орудия на экран, удалить или изменить состав текущего класса, изменить характеристики оружия и т.д. ИСПОЛЬЗОВАТЬ ТОЛЬКО САМЫЕ ОСНОВНЫЕ КОММАНДЫ.

136
167
Посмотреть ответы 2

Ответы на вопрос:


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

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS