Как нормально пробросить данные в дочерние классы, используя ООП? Доброе время суток! Пытаюсь сделать ИИ по совести, чтобы и ООП был, и универсальный, но не получается. Тупо C# не позволяет мне сделать это даже с генериками. Цель - пробросить в реализацию интерфейса IBotBehaviour кастомную информацию, нужную лишь для данного поведения. Хотелось бы пробросить ее через конструктор или метод. Но так, чтобы ее было обязательно пробрасывать.
Вот пример интерфейсов и реализаций:
IBotBehaviour - интерфейс поведения, который должен обязывать передавать ему информацию.
IBot - использует IBotBehaviour.
IdleBehaviour - ничего не делает, следовательно инфа ему никакая не нужна.
FollowBehaviour - требует 2 аргумента типа Positionу
BotTest - использует попеременно разные поведения и пробрасывает в них совершенно разные параметры.Пример кодаpublic interface IBotBehaviour
{
void Process();
void Setup(); // ?
}
public interface IBot
{
void SetBehaviour(IBotBehaviour behaviour);
}
public class IdleBehaviour : IBotBehaviour
{
public void Process()
{
// wait 1s
}
public void Setup()
{
}
}
public class FollowBehaviour : IBotBehaviour
{
Position myPosition;
Position targetPosition;
public void Process()
{
// move my pos to target pos
}
public void Setup(Position myPosition, Position targetPosition)
{
this.myPosition = myPosition;
this.targetPosition = targetPosition;
}
}
public class BotTest : IBot
{
protected IBotBehaviour currentBehaviour;
public void SetBehaviour(IBotBehaviour behaviour)
{
currentBehaviour = behaviour;
}
// call currentBehaviour.Process() in game cycle
}

21 Авг 2019 в 06:59
188 +1
0
Ответы
Нет ответов
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 683 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир