Я тренировался, пытаясь сделать AI-плеер для популярной карточной игры, Dominion (http://www.boardgamegeek.com/boardgame/36218/dominion).
Если вы не знакомы с игрой, это в основном очень оптимизированный кузен Magic: The Gathering, где есть большая библиотека карт с разными правилами. В течение игры игроки покупают эти карты и включают их в свою колоду.
Меня интересует эта игра с точки зрения машинного обучения. Я хочу, чтобы ямы ботов друг против друга, чтобы они играли миллионы игр и пытались понять, что они будут играть лучше.
Я не уверен, как отделить правила игры (стенографические инструкции, напечатанные на каждой карте) от основной логики принятия решений AI.
Очевидным путем, который я начал, является создание класса для каждой Карты и включение обоих правил и файлов AI в одно и то же место. Это грубо - но это похоже на путь наименьшего сопротивления. Но, может быть, лучше всего, чтобы каждая карта поддерживала какой-то интерфейс, а затем имела код компонентов AI против этих?
Есть ли для этого "правильный" проект ООП? Или несколько разумных возможностей?