【发布时间】:2010-11-23 21:38:11
【问题描述】:
我一直在尝试为流行的纸牌游戏 Dominion (http://www.boardgamegeek.com/boardgame/36218/dominion) 制作一个 AI 播放器。
如果你不熟悉这款游戏,它基本上是《万智牌》的一个非常精简的表亲,其中有一个庞大的卡片库,上面有不同的规则。在游戏过程中,玩家会购买这些卡片并将它们整合到自己的牌组中。
我从机器学习的角度对这款游戏很感兴趣 - 我希望让机器人相互对抗,让它们玩数百万场游戏,并尝试挖掘数据洞察力,让它们玩得更好。
我不确定如何将游戏规则(印在每张卡片上的逐字说明)与核心 AI 决策逻辑分开。
我开始的明显路径是为每张卡片创建一个类,并将规则和 AI 内容放在同一个地方。这有点粗俗——但它似乎是阻力最小的路径。但也许最好让每张卡都支持某种接口,然后针对这些接口编写 AI 组件代码?
是否有“正确”的 OOP 设计?还是几种合理的可能性?
【问题讨论】:
-
当您说“...为每张卡片创建一个类,并且...”时,您是指具有多个实例的类 Card 还是字面意义上的多个类,每张卡片一个?跨度>
标签: c# oop artificial-intelligence