SirDarius的评论是当场的。
但是,对于像进阶玩家这样简单的事情,您实际上并不需要费心实现完整的有限状态机。
就MVC而言,这是您应该为 人类 玩家做的事情:
模型: 提供一些方法,用于使活动玩家前进到下一个玩家并进行“转弯过程”(即掷骰子,移动活动玩家的代币等)。由于转弯过程的大部分是事件驱动的,因此这些方法调用将由控制器中的事件侦听器进行。
视图: 在活动玩家结束回合后引发事件,并在其他各种输入上引发事件。
控制器: 每当一个玩家完成回合时,告诉模型前进到下一个玩家,然后再次开始“回合过程”。每当玩家提供输入时,都会触发一个事件,告诉模型前进到下一个回合阶段。
对于 AI
玩家,可以使用大多数相同的代码,但是由视图驱动转弯进度没有意义。取而代之的是,模型需要具有另一种专门针对AI玩家的“转弯过程”方法。唯一的区别是代码将连续执行而无需等待视图的输入,而不是一系列事件侦听器。



