我正在尝试编写两个用户玩的离线无AI无GUI同步命令行象棋游戏(或者一个用户同时玩白色和黑色)。这意味着只有1个帖子。
国际象棋游戏包括特殊运动{捕获,通过,升级,铸造,将死,僵局}
用户通过陈述开始位置和结束位置来与游戏交互。例如e1 g1。这就是它,在一行中。
我正在努力获得面向对象设计的全部特权。但只是为了这个要求。 实施状态模式是否值得?由于用户只输入命令,因此游戏不应要求用户做出任何其他决定。
编辑:我为没有说清楚而道歉。令我困惑的是,是否在游戏控制级别实现状态,如图像:或游戏块级别,如此图像:
答案 0 :(得分:2)
如果您不打算稍后改进游戏或在其中添加更多功能,则无需使其成为有状态。
但是如果有任何机会(低至 1%)以便将来工作,那么你最好让它成为有状态的。因为在新的上下文中重写功能总是更容易编写不必要的代码。
答案 1 :(得分:0)
使用状态将为cosnosle应用程序国际象棋游戏提供相同的好处,因为它将为您提供完整的UI应用程序。主要的好处是你可以跟踪允许的移动和游戏状态,就像你说的那样:casteling,en-passant,check,check-mate等。
游戏状态和可能的移动不受使用控制台应用程序,UI,分布式Web应用程序或其他任何事实的影响。它们与游戏的内部逻辑有关。
修改强>
对于UI国际象棋应用我可以想到的一个好处是,如果你想专注于ceratin状态的外观,例如: :当有检查状态时,在国王身上放一个红色方块。