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, чтобы работать с индексами, но не знаю как.
Поделитесь своими знаниями, ответьте на вопрос:
Cтроки. паскаль. 1.задано слово - последовательность произвольных символов. сделать программу, в которой составляется слово перевертыш к данному ( символы записываются в обратной последовательности.) 2.данасимвольная строка. слово - последовательность символов между пробелами, не содержащая пробелы внутри себя.составить программу, в которой выводились бы все слова, в которых есть заданный символ.
{первая }var s, rez: string; // строки i: integer; // целое число (счетчик)begin writeln('введите строку: '); readln(s); // for i : = length(s) downto 1 do // просматриваем буквы, начиная с последней rez : = rez + s[i]; // прибавляем букву к результату writeln(rez) // выводим результатend.