Библиотеки / Алгоритмы для сложных задач if / else в C # - PullRequest
2 голосов
/ 17 января 2011

Я должен внедрить механизм анкетирования, где каждый ответ на один вопрос может закончиться совершенно другим результатом.

Итак, если бы у нас было 10 вопросов с 10 ответами каждый, у нас было бы 10 в степени 10 возможностей.

Это должно быть что-то вроде скриптового AI, я думаю ...

Итак, какой механизм правил или метод реализации я бы использовал для такой проблемы?

Полагаю, такой алгоритм слишком прост?

if (x==1)
  if (y==1)
  {
    if (z==1 || z==2)
      // do sth
    if (z==3)
      // do sth different
   }

Спасибо за любой совет по этому поводу.

1 Ответ

4 голосов
/ 17 января 2011

Существуют библиотеки, которые можно использовать для реализации этой формы «обработчика правил».

Например, Windows Workflow Foundation позволяет определять основные правила с помощью FlowDecision. и другие связанные классы.

Другими альтернативами являются механизмы правил, такие как Drools.Net .

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

...