М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Duka2003
Duka2003
20.01.2021 06:16 •  Информатика

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

👇
Ответ:
Любимка97
Любимка97
20.01.2021

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, чтобы работать с индексами, но не знаю как.

4,4(91 оценок)
Открыть все ответы
Ответ:
ино7
ино7
20.01.2021
Procedure GetAB(x: integer; var a: integer; var b: integer);
begin
    a := 0;
    b := 1;
    while x > 0 do
    begin
        a := a + 1;
        b := b * (x mod 100);
        x := x div 100;
    end;
end;

var
    x, a, b: integer;

begin
    for x := 10000 to 2000000000 do
    begin
        GetAB(x, a, b);
        if (a = 3) and (b = 18) then
            Println(a, b, x);
    end;
end.

выдает такие значения
3 18 10118
3 18 10209
3 18 10306
3 18 10603
3 18 10902
3 18 11801
3 18 20109
3 18 20303
3 18 20901
3 18 30106
3 18 30203
3 18 30302
3 18 30601
3 18 60103
3 18 60301
3 18 90102
3 18 90201
3 18 180101

Выделенное наибольшее
4,5(24 оценок)
Ответ:
Elina558548
Elina558548
20.01.2021

Гиперте́кст (англ. hypertext) — термин, обозначающий систему из текстовых страниц, имеющих перекрёстные ссылки.

Примерами гипертекста являются энциклопедии, компьютерные сети, веб-сайты, в которых можно переходить с одной страницы на другую и выполнять поиск по ключевым словам.

В компьютерной терминологии гипертекст — это текст, сформированный с языка разметки (например, HTML) с расчетом на использование гиперссылок.

В литературоведении гипертекст — это книга, имеющая внутренние ссылки, то есть ссылки с одной части на другую.

4,7(96 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ