Я работаю над инструментом для анализа покера со следующим вариантом использования:
- Пользователь создает класс стратегии одним методом: ввод GameState, вывод PokerAction
- Пользователь запускает сценарий анализа, который запускает PokerGame между различными подклассами стратегий (т.е. различными стратегиями)
- PokerGame генерирует случайную колоду
- PokerGame отправляет GameState в стратегию
- Стратегия отправляет PokerAction в PokerGame
- Обновления PokerGame GameState
- Когда игра закончится (управляется PokerGame), отправьте GameResult в скрипт Analysis
- Вывод пользовательских отзывов скрипта Analysis
Естьсторонняя библиотека, которая выполняет все функции PokerGame.Это совсем не соответствует моему собственному моделированию домена в некоторых областях (например, значения карт и т. Д.), Но выполняет большую часть «трудных для кодирования» функций, которые мне нужны (то есть нетривиальные шаги 4 -7).
Общий вопрос проектирования Когда вы сталкиваетесь с подобной библиотекой (устраняет много жесткого кодирования, но может ограничить будущие варианты проектирования в связанных проектах), склонны ли вы формироватьОстальная часть вашего проекта в библиотеку?Реорганизуете ли вы библиотеку ключей, чтобы она соответствовала вашей доменной модели?Или это что-то еще?
Спасибо,
Майк