规划应用程序

5 本我 5天前 97次点击

下面开发一个类模块,以便在后续使用。这个类模块包含两个类:

● Card—— 表示一张标准的扑克牌,包含梅花、方块、红心和黑桃,其顺序是从A到K。

● Deck—— 表示一副完整的52张扑克牌,在扑克牌中可以按照位置访问各张牌,并可以洗牌。

再开发一个简单的客户程序,确保这个模块能正常使用,但现在还不开发完整的扑克牌游戏应用程序。

但在开始编写代码前,应规划一下需要的结构和类的功能。

1. Card类

Card类基本上是两个只读字段suit和rank的容器。把字段指定为只读的原因是“空白”的牌是没有意义的,牌在创建好后也不能修改。为此,要把默认的构造函数指定为私有,并提供另一个构造函数,使用给定的suit和rank建立一副扑克牌。

此外,Card类要重写System.Object的ToString()方法,这样才能获得人们可以理解的字符串,以表示扑克牌。为使编码简单一些,为两个字段suit和rank提供枚举。

2. Deck类

Deck类包含52个Card对象。我们为这些对象使用一个简单的数组类型。这个数组不能直接访问,因为对Card对象的访问要通过GetCard()方法来实现,该方法返回指定索引的Card对象。这个类也有一个Shuffle()方法,用于重新排列数组中的牌。

编写类库

类和枚举都包含在一个类库项目中,这个项目将包含4个.cs文件:Card.cs包含Card类的定义,Deck.cs包含Deck类的定义,Suit.cs和Rank.cs文件包含枚举。

可使用VS的类图工具把许多代码组合在一起。

(1)创建一个新的类库项目

(2)打开解决方案资源管理器,在练习1 已展开 上下文菜单找查看,找查看类图

(3)视图找工具箱添加一个枚举

接着上下文菜单找类详细信息窗口添加枚举的成员。

再以相同的方式利用工具箱添加Rank枚举

注意:

第一个成员一的输入值为1,它会使枚举的底层存储匹配扑克牌的大小,例如六就存储为6。

为这两个枚举生成的代码位于Suit.cs和Rank.cs文件中。

Suit.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace 练习1

{

public enum Suit

{

红心,

方块,

黑桃,

梅花,

}

}

Rank.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace 练习1

{

public enum Rank

{

一=1,

二,

三,

四,

五,

六,

七,

八,

九,

十,

J,

Q,

K,

}

}


目前还没有评论
添加一条新评论

登录后可以发表评论 去登录