示范应用程序
10.6示例应用程序
为了解释前面使用的一些技术,下面开发一个类模块,以便在后续章节中使用。这个类模块包含两个类:Card——表示一张标准的扑克牌,包含梅花、方块、红心和黑桃,其顺序是从A到K。Deck——表示一副完整的52张扑克牌,在扑克牌中可以按照位置访问各张牌,并可以洗牌。再开发一个简单的客户程序,确保程序正常工作,但在整个扑克牌应用程序中不使用扑克牌。
10.6.1规划应用程序
这个应用程序的类库Ch10CardLib包含类。在开始编写代码前,应规划一下需要的结构和类的功能。
-
Card类基本上是两个只读字段suit和rank的容器。把字段指定为只读的原因是“空白”的牌是没有意义的,牌在创建好后也不能修改。为此,要把默认的构造函数指定为私有,并提供另一个构造函数,从给定的suit和rank中建立一副扑克牌。Card类要重写System.Object的ToString()方法,这样才能获得人们可以理解的字符串,以表示扑克牌。为使编码简单一些,为两个字段suit和rank提供枚举。
-
Deck类包含52个Card对象。我们为这些对象使用一个简单的数组类型。这个数组不能直接访问,因为对Card对象的访问要通过GetCard()方法来实现,该方法返回指定索引的Card对象。这个类也有一个Shuffle()方法,重新安排数组中的牌。
你可能会好奇,这样的类模块在哪里可以找到实际的实现和更多的例子呢?幸好,我找到了几个很好的资源,你可以查看和下载。扑克牌模块1.0提供了一个完整的示例。CardLib扑克牌类完成洗牌功能也详细介绍了如何实现洗牌功能。如果你对用Python实现扑克牌发牌感兴趣,Python用类实现扑克牌发牌的示例代码是一个不错的起点。
这些资源不仅能帮助你理解上述类的实现,还能为你提供更多的实用代码和模块,让你的开发更加顺利和高效。谁会不喜欢这样便捷的参考资料呢?赶快去看看吧!