有关拖拉机游戏的面向对象设计讨论

发表于:2007-06-30来源:作者:点击数: 标签:
一次过程应该会有这么几个 use case : 用户登录 浏览当前牌友情况 加入到一个牌局 退出 玩牌的过程中,主要有这几个: 确定庄家 发牌 留底 顺次出牌(这一段的逻辑需要良好的封装) 计分,判断胜负 其它: 用户之关的聊天交流等 从这个过程里面去查找类的话,
一次过程应该会有这么几个 use case:
用户登录 
浏览当前牌友情况
加入到一个牌局
退出

玩牌的过程中,主要有这几个:
确定庄家
发牌
留底
顺次出牌(这一段的逻辑需要良好的封装)
计分,判断胜负

其它:
用户之关的聊天交流等



从这个过程里面去查找类的话,刚才 bigeagle 所提到的几个类已经基本上概括了:

一个大厅(其实在这里,大厅应该是包含很多个版桌的)用户进入大厅后,可以查看各个牌桌的状态,选择自己加入到哪个桌子。
table 类(or desk ) table 可以理解为一局的管理者(或者,table 只管显示),另外用一个类来对牌局进行管理。 这在我们一般的玩牌过程中好像没有这样的一个管理者,那是因为一些工作都是我们自己在做了(如发牌、计分等)
扑克本身应该算是一个类型。必须在牌的整体上有一个概念。它能决定一共多少张牌、以及发牌的过程。
牌、用户等 刚才所说的基本上是这些概念。

其中 大厅是一个服务的概念,需要一个守护进程。而且,可以考虑是一个 “单子”的模式。
 

原文转自:http://www.ltesting.net