Правильная структура ООП для игрока Dominion AI

Я возился, пытаясь создать ИИ-игрока для популярной карточной игры, Dominion (http://www.boardgamegeek.com/boardgame/36218/dominion).

Если вы не знакомы с игрой, это, по сути, очень упрощенный кузен Magic: The Gathering, где есть большой - ish библиотека карточек с разными правилами на них. В ходе игры игроки покупают эти карты и включают их в свою колоду.

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

Я не уверен, как отделить правила игры (дословные инструкции, напечатанные на каждой карточке) от основной логики принятия решений ИИ.

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

Есть ли для этого «правильный» дизайн ООП? Или несколько разумных возможностей?

10
задан jball 23 November 2010 в 21:45
поделиться