为了好玩,我正在尝试将我儿子最喜欢的棋盘游戏之一写成一个软件.最终我希望在它之上构建一个WPF UI,但是现在我正在构建一个模拟游戏及其规则的机器.
当我这样做时,我一直看到许多棋盘游戏常见的问题,也许其他人已经比我更好地解决了这些问题.
(注意AI玩游戏,高性能模式对我来说并不感兴趣.)
到目前为止我的模式是:
代表游戏盒中的实体的几种不可变类型,例如骰子,棋子,卡片,棋盘,棋盘上的空格,金钱等.
每个玩家的一个对象,其中包含玩家资源(例如金钱,分数),他们的名字等.
表示游戏状态的对象:玩家,转向的人,棋盘上的peices布局等.
管理转弯序列的状态机.例如,许多游戏都有一个小的赛前游戏,每个玩家都会看到谁先出现; 这是开始状态.当一个玩家的回合开始时,首先他们滚动,然后他们移动,然后他们必须跳舞到位,然后其他玩家猜测他们是什么品种的鸡,然后他们获得积分.
我可以利用一些现有技术吗?
编辑:我最近意识到的一件事是游戏状态可以分为两类:
游戏神器状态."我有10美元"或"我的左手是蓝色的".
游戏序列状态."我已经两次翻过双打;下一次让我入狱".状态机可能在这里有意义.
编辑:我真正想要的是实现像Chess或Scrabble或Monopoly这样的多人回合制游戏的最佳方式.我确信我可以通过从头开始完成来创建这样的游戏,但是,像其他设计模式一样,可能有一些方法可以让事情变得更加顺利,如果不仔细研究就不会显而易见.这就是我所希望的.