При разработке компьтерных игр зачастую создаётся сложная система классов. в этой вам будет необходимо сделать небольшую заготовку, которую потом можно будет использовать для создания своей игры. реализуйте класс weapon для оружия, который при инициализации должен принимать имя оружия name, наносимый урон damage, а также радиус, на котором оружие может достать до врага – range. в классе weapon должны быть реализованы следующие методы: hit(actor, target) – удар персонажем actor персонажа target. метод должен проверять, жив ли персонаж target, если нет, то выводить сообщение «враг уже повержен», иначе должна проводится проверка расстояния от actor до target. если расстояние больше range оружия, тогда надо выводить сообщение «враг слишком далеко для оружия ». в случае, если target жив и оружие имеет достаточный range, вывести сообщение «врагу нанесен урон оружием в размере » и нанести урон target. к строке – при к строке должно возвращаться имя оружия. реализуйте класс basecharacter для создания базовых персонажей, который при инициализации должен принимать pos_x и pos_y – позицию персонажа в мире, hp – количество жизней персонажа. класс basecharacter должен реализовывать методы: move(delta_x, delta_y) – для перемещения персонажа на delta_x и delta_y в игровом мире. is_alive() – проверка, жив ли персонаж. возвращает true, если жив, иначе – false. get_damage(amount) – убавляет количество жизней персонажа на amount. при достижении 0 или отрицательного значения персонаж считается мёртвым. get_coords() – возвращает кортеж с текущими координатами персонажа. реализуйте класс baseenemy для создания противников, который расширяет класс basecharacter. при инициализации он должен принимать pos_x и pos_y – позицию персонажа в мире, weapon – оружие, hp – количество жизней персо