profile
Размещено 5 лет назад по предмету Информатика от vankiman

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

  1. Ответ на вопрос
    Ответ на вопрос дан h1si

    Ответ:

    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. Ответ на вопрос
      Ответ на вопрос дан KnowsUser1
      По моему, вы чутка перестарались) Человеку просто надо было данные в словарик вносить)
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.